haskell - 为什么 Haskell 标准库中没有 <<?

标签 haskell monads

Monad类定义了 >>方法,它对两个一元 Action 进行排序:

>> :: Monad m => m a -> m b -> m b

绑定(bind)运算符 >>=有一个等价的翻转参数,=<< ;与一元函数组合('fish')运算符 >=> 一样和 <=< .好像没有<< , 但是(经过几分钟的 Hoogling)。为什么是这样?

编辑:我知道这没什么大不了的。我只是喜欢某些代码行与左指向运算符的外观。 x <- doSomething =<< doSomethingElse只是看起来比 x <- doSomethingElse >>= doSomething 更好,箭头都指向相同的方向.

最佳答案

据我所知,没有充分的理由。请注意,您的 Monad也应该是 Applicative 的一个实例, 所以你可以使用 <**>而是作为您的测序工具。

关于haskell - 为什么 Haskell 标准库中没有 <<?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14176667/

相关文章:

testing - 是否有与 QuickCheck 一起使用的 Arbitrary 的单子(monad)版本?

haskell - Haskell 将 Hom Functor/Monad 称为什么?

functional-programming - Java 8 monad 中的流是什么?

haskell - 是否有像 iterate 这样的标准 Haskell 函数停止为 Nothing?

haskell - 如何在 Either Monad 中收集所有错误消息?

haskell - 将 IO [可能是字符串] 过滤为 IO [字符串]

haskell - Pointfree 在 Haskell 中返回一个元组

scala - 使用Either的链接方法调用

haskell - 标准库中是否有 (a -> b) -> ((Maybe a) -> (Maybe b)) 转换器?

haskell - 分割导管链