小编Clu*_*ess的帖子

有人可以向我解释一下这些 Iterator、Yield monad 类型和函数的含义吗?就像我是 5 一样?

下面是代码。我在一定程度上理解了applicative、functor、traversable和monad。迭代器、yield 类型以及yield 函数是我最难理解的。例如,Iterator 中的 ior 和 Yield 中的 iora 是什么?traverseY 到底做了什么以及签名的含义是什么?而 Monad Cont 在这里的应用方式也让我很困惑。感谢您的阅读,如有任何意见,我们将不胜感激。

import Control.Monad.Cont
import Control.Monad.Random
import System.Random.Shuffle


data Iterator i o r =
    Result r
  | Susp o (i -> Iterator i o r)
--------------------------------------------------------------------------------------------
newtype Yield i o r a = Yield { unY :: Cont (Iterator i o r) a }

instance Functor (Yield i o r) where
  fmap f (Yield m) = Yield (fmap f m)

instance Applicative (Yield i o r) where
  pure …
Run Code Online (Sandbox Code Playgroud)

haskell

9
推荐指数
1
解决办法
538
查看次数

标签 统计

haskell ×1