在 monad 转换器中使用类型同义词
是否可以使用类型同义词作为 monad 转换器类型构造函数的参数?特别是,如果应用的 monad 转换器有一个一元类型同义词,它是否可以用作另一个 monad …
使用 monad 获得更优雅代码的技巧?
我终于掌握了如何使用 monad(不知道我是否理解它们......),但我的代码从来都不是很优雅。我猜想是因为缺乏对 Control.Monad 上的所有这些功能如何…
有人在野外遇到过 Monad Transformer 吗?
在我的业务领域 - 金融机构的后台 IT - 软件组件携带全局配置、记录其进度、进行某种错误处理/计算短路是很常见的......可以通过 Haskell 中的 Reader…
如何将 Maybe-Transformer MaybeT 制作为 MonadWriter 的实例?
我正在尝试构建一个 MaybeT-Transformer Monad,基于 Real World Haskell,Monad Transformers 章中的示例: data MaybeT m a = MaybeT { runMT :: m …
尝试实现 (>>=) 函数以创建自定义 monad 转换器时出现类型错误
我正在尝试为未来的项目创建一个 monad 转换器,但不幸的是,我对 Monad 类型类的 (>>=) 函数的实现不起作用。 首先,这是底层 monad 的实现: ne…
将 MonadError 与 Parsec 结合使用
我正在尝试将 MonadError 与 Parsec 一起使用。我想出了以下代码片段: f5 = do char 'a' throwError "SomeError" f6 = f5 `catchError` (\e -> une…
monad 变压器和多个 monad 的堆叠
我有带有签名 f :: [a] -> 的函数 f StateT Int Reader b [c] 和带有签名 f' :: a -> 的 f' StateT Int Reader b [c] f 中的计算(非常简化)如下…
Haskell Monad 变压器堆栈和类型签名
我正在尝试创建一堆 monad 转换器,但无法为我的函数获取正确的类型签名。 (我对 Haskell 还很陌生) 该堆栈结合了多个 StateT 转换器,因为我需要跟…
尴尬的 Monad 变压器堆栈
解决 Google Code Jam 中的问题 (2009.1AA:“Multi-基本幸福”)我想出了一个尴尬的(代码方面的)解决方案,我对如何改进它很感兴趣。 简而言之,问…