【发布时间】:2013-11-23 02:12:47
【问题描述】:
到目前为止,我发现:
http://monads.haskell.cz/html/writermonad.html
http://en.wikipedia.org/wiki/Monad_(functional_programming)
给出>>= 和return 的定义
官方代码在哪里?
【问题讨论】:
标签: haskell monads writer-monad
到目前为止,我发现:
http://monads.haskell.cz/html/writermonad.html
http://en.wikipedia.org/wiki/Monad_(functional_programming)
给出>>= 和return 的定义
官方代码在哪里?
【问题讨论】:
标签: haskell monads writer-monad
标准转换器的Monad 实例可在transformers 包中找到。对于WriterT,请查看here。不幸的是,目前没有很好的工具支持来查找特定实例的定义位置——您只需要做一些有根据的猜测(或者巧妙地使用您最喜欢的grep 替换)。
【讨论】:
transformers 包——看起来我需要把它放在我的 TODO 列表中。谢谢!
#line-124。除了手动检查 HTML 源代码之外,还有其他方法可以获取这些锚点吗?
#v:name 用于定义值 name 的地方; #t:name 用于定义类型name 的地方;和#line-n 用于n 行。由于实例没有定义新的值或类型,您必须使用#line 形式(并因此以某种方式找出行号),但其他两个更容易预测。
所有来源都可以在Hackage上找到。
【讨论】:
bind 和 return - 因此请求帮助。
mtl 的 2.x 版本采用了 transformers 的具体实现(注意源代码中的 Control.Monad.Trans.Writer.Lazy 导入)。 mtl 就其自身而言,只是添加了诸如 MonadWriter 之类的 monad 类。