有什么不同?是否seq保证更多的流动条件?
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 回答