需要 MonadPlus (ST a) 实例
我正在阅读论文 Haskell 中的类型化逻辑变量,但我无法理解最终实现的细节。特别是第 4 节中介绍的回溯状态转换器。出于某种我不知道的原因,GHC 认为…
有没有更好的方法在 Haskell 中实现多通道 Writer monad?
问题: 我需要在同一个 Haskell monad 转换器堆栈中组合不同类型的 writer monad。除了使用 tell 编写调试消息之外,我还想用它来编写其他一些数据类…
将 monad 组合抽象为变压器
抱歉,如果这个问题看起来有点微不足道……它不适合我。 我很高兴地编写了以下 monad: type SB i a = ReaderT ( AlgRO i ) (State ( AlgState i ) ) …
更多 rmonad 库?
我想用 RMonad 做一些基本的事情。有没有办法使用“as monad”功能来 拥有身份 rmonad,以应用 monad 转换器? 有诸如 StateT 变压器之类的常见东西吗…
monads-tf:MonadState 的 MonadReader 实例
考虑下一个例子。我有一个单子 MyM 它只是一个 StateT {-# LANGUAGE TypeFamilies #-} import Control.Monad.State import Control.Monad.Reader type…
Haskell 的 monad 转换器在分类术语中是什么?
作为一名数学学生,当我了解 Haskell 中的 monad 时,我做的第一件事就是检查它们是否确实是我所知道的意义上的 monad。但后来我了解了 monad 转换器…
mapMonadTrans :: MonadTrans xT => (ma→nb)→ xTma-> xTnb
问题是这样的。我有: f :: MonadIO m => ReaderT FooBar m Answer; f = (liftIO getArgs) >>= ... 我需要使用修改后的参数来运行它。然而,由于 m 未…
在 Haskell 中混合 Monad
我正在尝试在 haskell 中使用 Ubigraph,但我相信我的问题更通用。我正在尝试编译: import Graphics.Ubigraph import Control.Monad import System.P…
Monad 转换器库 - 使用哪一个?
Closed. This question is off-topic. It is not currently accepting answers. 想要改进此问题吗?更新问题,使其关于- Stack Overflow 的主题。 11…
monad 转换器中的内部 monad 是否有 `replicateM` 函数?
假设我有这样的东西: data Environment = ... data MyState = ... data Report = ... updateState :: Environment -> MyState -> MyState updateStat…
为什么要为 monad 定义单位自然变换——这不是由 monad 的定义暗示的吗?
monad 被定义为类别 C 上的一个 endofunctor。比方说,C 具有类型 int 和 bool 以及其他构造类型作为对象。现在让我们考虑一下在此类别上定义的列表 …
为什么将 Data.Binary.Put monad 更改为转换器会导致内存泄漏?
我正在尝试将 Data.Binary.PutM monad 修改为 monad 转换器。所以我开始将它的定义从 newtype PutM a = Put { unPut :: PairS a } to newtype PutM a …
如何在 Haskell 中将树数据结构保存到二进制文件
我正在尝试使用 Haskell 将一个简单(但相当大)的树结构保存到二进制文件中。结构看起来像这样:-- For simplicity assume each Node has only 4 chi…
为什么包装 Data.Binary.Put monad 会导致内存泄漏? (第二部分)
正如我的上一个问题,我正在尝试将 Data.Binary.Put monad 包装到另一个 monad 中,以便稍后我可以问它诸如“它将写入多少字节”或“文件中的当前位置…