Haskell的新手,我正试图找出这个Monad的东西.monadic绑定运算符 - >>=具有非常奇特的类型签名:
(>>=) :: Monad m => m a -> (a -> m b) -> m b
Run Code Online (Sandbox Code Playgroud)
为了简化,我们替换Maybe为m:
(>>=) :: Maybe a -> (a -> Maybe b) -> Maybe b
Run Code Online (Sandbox Code Playgroud)
但请注意,该定义可以用三种不同的方式编写:
(>>=) :: Maybe a -> (Maybe a -> Maybe b) -> Maybe b
(>>=) :: Maybe a -> ( a -> Maybe b) -> Maybe b
(>>=) :: Maybe a -> ( a -> b) -> Maybe b
Run Code Online (Sandbox Code Playgroud)
在这三个中,中心的一个是最不对称的.但是,据我所知,如果我们想避免(LYAH称为样板代码),第一个有点无意义.但是,接下来的两个,我更喜欢最后一个.对于 …
我试图理解纯函数式语言的执行顺序.
我知道在纯函数式语言中,没有必要的执行顺序.
所以我的问题是:
假设有两个功能.我想知道我可以在一个接一个地调用一个函数的所有方法(除了从另一个函数嵌套调用一个函数)(和io-mode除外).
我想在Haskell或伪代码中看到示例.