cur*_*eux 2 monads haskell type-signature
(+) 的类型签名是:
(+) :: Num a => a -> a -> a
Run Code Online (Sandbox Code Playgroud)
我可以在:
+ 4 5
Run Code Online (Sandbox Code Playgroud)
结果是 9. + 需要 4 并返回一个大致的函数:
(4 + a) -> a
Run Code Online (Sandbox Code Playgroud)
...然后取 5 并计算为 9。基本上,两件事情,一件事情出来。我没有看到使用绑定运算符的类型签名是如何工作的。对我来说,在实践中,它看起来总是一进一出。
有人可以像我上面为 (+) 所做的那样使用 Maybe monad 引导我完成一个简单的例子吗?希望这对像我这样的 Haskell 新手通常有用!
这是 bind 的类型签名:
(>>=)
:: Monad m
=> m a -- Left argument
-> (a -> m b) -- Right argument
-> m b
Run Code Online (Sandbox Code Playgroud)
下面是一个带有两个参数的绑定示例:
Just 1 >>= (\n -> Just (n + 1))
^^^^^^ ^^^^^^^^^^^^^^^^^^^^
Arg #1 Arg #2
Run Code Online (Sandbox Code Playgroud)
.. 它评估为 Just 2
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |