Haskell 单子证明
Haskell monadic proof
对于数学专家(我不是,也不是 Haskell 专家):
m >> k = m >>= \_ -> k
这'monad' 类型检查和编译。这是为了从数学上证明 m >> k
(省略 return 值)和 m >>= \_ -> k
(带有 return 的 monad,但没有 lambda)是相同的,还是我实际上可以把价值观放进去?只是好奇。不是阻塞问题。
这是中缀形式的函数 >>
的定义。
相当于更平常的(>>) m k = ...
。
这里的括号是为了说明Haskell我们使用前缀形式的运算符
我假设您正在阅读序曲中的以下内容 http://hackage.haskell.org/package/base-4.12.0.0/docs/src/GHC.Base.html#%3E%3E
这不是证明。这更类似于 OOP 接口中方法的定义。
里面定义了class Monad
(class中的Haskell更像是一个接口);它定义了一个运算符 >>
应该被定义。并提供了默认定义。默认定义为 m >>= \_ -> k
.
对于数学专家(我不是,也不是 Haskell 专家):
m >> k = m >>= \_ -> k
这'monad' 类型检查和编译。这是为了从数学上证明 m >> k
(省略 return 值)和 m >>= \_ -> k
(带有 return 的 monad,但没有 lambda)是相同的,还是我实际上可以把价值观放进去?只是好奇。不是阻塞问题。
这是中缀形式的函数 >>
的定义。
相当于更平常的(>>) m k = ...
。
这里的括号是为了说明Haskell我们使用前缀形式的运算符
我假设您正在阅读序曲中的以下内容 http://hackage.haskell.org/package/base-4.12.0.0/docs/src/GHC.Base.html#%3E%3E
这不是证明。这更类似于 OOP 接口中方法的定义。
里面定义了class Monad
(class中的Haskell更像是一个接口);它定义了一个运算符 >>
应该被定义。并提供了默认定义。默认定义为 m >>= \_ -> k
.