[英]Monads: What's the difference between seq and >>=?
有什么不同? seq
是否保證更多流量條件?
他們根本沒有關系。
seq
有類型:
seq :: a -> b -> b
它被使用(如seq ab
,或a `seq` b
),以評估a
頭正常形式,這是說,它迫使懶惰值的一個奇特的方式a
要評估一點點。 它與monads無關。
>>=
用於測序monad。 它有類型:
(>>=) :: Monad m => m a -> (a -> m b) -> m b
它用於從monadic值獲取值並將其傳遞給返回另一個monadic值的函數。 基本上是這樣的:
getLine >>= putStrLn
這將從命令行獲取一串輸入,然后將其打印出來。
所以,基本上沒有任何關系。
seq
不是monad特有的。 seq
用於強制在返回第二個參數之前評估其第一個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.