在 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 update…
为什么要为 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 中,以便稍后我可以问它诸如“它将写入多少字节”或“文件中的当前位置…
在 snap 中使用 reader monad(或者在 snap 中使用 monad 转换器)
有人可以展示如何在 reader monad 中使用 snap monad 吗? Monad 转换器让我很困惑。 (或者,我很乐意接受关于 monad 转换器的教程建议,以及如何看…
Haskell 最佳实践:在 Haskeline 中提前终止
我正在使用 Haskeline 包,我想从命令行连续获取三个字符串在我做任何事情之前,我已经想出了对我来说似乎是一个巧妙的解决方案。但我确信可能有更好…
将函数包装到 monad 转换器中是否/应该被视为不好的做法?
假设我们想要在 Maybe monad 上使用 ReaderT [(a,b)],然后我们想要在列表中进行查找。 现在,一个简单且不太罕见的方法是: 第一种可能性 find a = R…
monad 转换器上下文中的 Monad
我很难掌握 monad 和 monad 转换器。我有 以下人为示例(不可编译): import Control.Monad import Control.Monad.Error import Control.Monad.Reade…
结合 StateT 和 State monad
假设我有一个函数 f :: State [Int] Int 和一个函数: g :: StateT [Int] IO Int 我想在 g 中使用 f 并在它们之间传递状态。有没有库函数 StateT(返…
为什么我的代码使用 List 包中的一元列表如此慢?
上周,用户 Masse 提出了一个关于在 Haskell 目录中递归列出文件的问题。我的第一个想法是尝试使用 List 包 中的单子列表以避免在打印开始之前在内存…