对于数学专家(我也不是Haskell专家):
m >> k = m >>= \_ -> k
此“ monad”进行类型检查和编译。这是从数学上证明m >> k
(省略返回值)和m >>= \_ -> k
(具有返回值的monad,而没有返回值的lambda)相同吗,还是可以实际放入值?只是好奇。不是阻塞性问题。
答案 0 :(得分:2)
这是以中缀形式定义的功能>>
。
相当于更常见的(>>) m k = ...
。
这里的括号是要解释Haskell,我们以前缀形式使用运算符。
答案 1 :(得分:0)
假设您正在阅读前奏http://hackage.haskell.org/package/base-4.12.0.0/docs/src/GHC.Base.html#%3E%3E
中的以下内容这不是证明。这更类似于OOP接口中方法的定义。
在class Monad
的定义中(Haskell中的类更像是一个接口);它定义了应该定义一个运算符>>
。并且提供了默认定义。默认定义为m >>= \_ -> k
。