[英]Haskell monadic proof
对于数学专家(我不是,也不是Haskell专家):
m >> k = m >>= \_ -> k
此“ monad”进行类型检查和编译。 这是从数学上证明m >> k
(忽略返回值)和m >>= \\_ -> k
(有返回值的monad,但没有返回值的lambda)是相同的,还是我可以实际输入值? 只是好奇。 不是阻塞问题。
这是函数>>
定义,以infix形式。
它等效于更常见的(>>) mk = ...
这里的括号是解释Haskell我们以前缀形式使用运算符。
我假设您正在阅读Prelude http://hackage.haskell.org/package/base-4.12.0.0/docs/src/GHC.Base.html#%3E%3E中的以下内容
这不是证明。 这更类似于OOP接口中方法的定义。
在class Monad
类的定义中(Haskell中的class Monad
更像是一个接口)。 它定义了一个运算符>>
应该被定义。 并且提供了默认定义。 默认定义为m >>= \\_ -> k
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.