Haskell单项证明

时间:2018-12-06 06:57:07

标签: haskell monads

对于数学专家(我也不是Haskell专家):

m >> k = m >>= \_ -> k

此“ monad”进行类型检查和编译。这是从数学上证明m >> k(省略返回值)和m >>= \_ -> k(具有返回值的monad,而没有返回值的lambda)相同吗,还是可以实际放入值?只是好奇。不是阻塞性问题。

2 个答案:

答案 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