gpt4 book ai didi

haskell - 有什么方法可以恢复足够的懒惰以在单子(monad)中喜结连理吗?

转载 作者:行者123 更新时间:2023-12-02 09:49:12 25 4
gpt4 key购买 nike

我想通过 tying the knot 编写一段巧妙的代码(节省我很多时间来实现) 。大致是这样的,

n <- myinstr n x

理论上,myinstr 应该运行 x 来获取一个值,该值将变为 nmyinstrState monad 内运行,会将 n 置于状态中,但这不会影响 x > 的计算。

我尝试过使用 DoRecmfix 的简单实现,

instance Monad 𝔪 => MonadFix (MyMonad 𝔪) where
mfix f = fix (\mx -> mx >>= f)

但是一切都卡住了。是否有任何方法可以修复我的代码(或第一次正确设计代码的方法),或者我应该写一些更简单的东西?

最佳答案

没有通用的方法可以使任意 monad 成为 MonadFix 的实例。实际的代码取决于 monad,甚至不可能对所有 monad 都有效。您可以查看各种 monad 以了解它是如何完成的。如果你的 monad 实际上是 State ,那么应该已经有一个实例了。

关于haskell - 有什么方法可以恢复足够的懒惰以在单子(monad)中喜结连理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com