有什么区别? seq
是否保证更多流量条件?
答案 0 :(得分:15)
它们根本不相关。
seq
的类型为:
seq :: a -> b -> b
使用它(作为seq a b
或a `seq` b
)来评估a
以正常形式,这是一种说法强制延迟值{{1}的奇特方式要进行一点评估。它与monads无关。
a
用于测序monad。它的类型为:
>>=
它用于从monadic值获取值并将其传递给返回另一个monadic值的函数。基本上是这样的:
(>>=) :: Monad m => m a -> (a -> m b) -> m b
将从命令行获取一串输入,然后将其打印出来。
所以,基本上没有任何关系。
答案 1 :(得分:2)
seq
并非特定于monad。 seq
用于强制在返回第二个参数之前对其第一个参数进行评估。