有什么不同?是否seq
保证更多的流动条件?
问问题
495 次
2 回答
15
他们根本没有关系。
seq
具有以下类型:
seq :: a -> b -> b
它用于 (as seq a b
, 或a `seq` b
) 来评估a
头部范式,这是一种奇特的说法,它强制对惰性值a
进行一点评估。它与单子无关。
>>=
用于对单子进行排序。它具有以下类型:
(>>=) :: Monad m => m a -> (a -> m b) -> m b
它用于从一元值中获取值并将其传递给返回另一个一元值的函数。基本上是这样的:
getLine >>= putStrLn
这将从命令行获取输入字符串,然后将其打印出来。
所以,基本上,没有任何关系。
于 2011-07-26T23:57:44.507 回答
2
seq
不是特定于单子的。seq
用于在返回第二个参数之前强制评估其第一个参数。
于 2011-07-26T23:54:47.050 回答