簡體   English   中英

Monads:seq和>> =之間有什么區別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM