Haskell 有什么方法可以让你恢复足够的懒散,从而在一张单子上结为连理?

Haskell 有什么方法可以让你恢复足够的懒散,从而在一张单子上结为连理?,haskell,monads,tying-the-knot,monadfix,Haskell,Monads,Tying The Knot,Monadfix,我想通过编写一段流畅的代码(节省我很多时间来实现其他功能)。大致是这样的, n <- myinstr n x n没有通用的方法使任意monad成为MonadFix的实例。实际的代码取决于monad,甚至不可能适用于所有monad。 你可以看看各种单子,看看它是怎么做的。如果你的monad实际上是状态,那么应该已经有一个实例了。有趣的是,它对所有的comonad都有很好的定义,但需要担心的实例却很少=/我希望我能使IO成为MonadFix的一个实例。@JohnL听起来像是时间旅行。:)@约

我想通过编写一段流畅的代码(节省我很多时间来实现其他功能)。大致是这样的,

n <- myinstr n x

n没有通用的方法使任意monad成为
MonadFix
的实例。实际的代码取决于monad,甚至不可能适用于所有monad。
你可以看看各种单子,看看它是怎么做的。如果你的monad实际上是
状态
,那么应该已经有一个实例了。

有趣的是,它对所有的comonad都有很好的定义,但需要担心的实例却很少=/我希望我能使
IO
成为MonadFix的一个实例。@JohnL听起来像是时间旅行。:)@约翰:我来这里的派对已经很晚了,但是IO已经是MonadFix的一个例子了。你是说别的吗?@LeventErkok:不,我只是在哀叹,没有各种令人不满意的原语(即
不安全的{Perform | Interleave}IO
)就无法完成这项工作。或者,正如奥古斯都有益地指出的那样,时间旅行。