相关疑难解决方法(0)

为什么在monad中使用这种特殊的函数类型?

Haskell的新手,我正试图找出这个Monad的东西.monadic绑定运算符 - >>=具有非常奇特的类型签名:

(>>=) :: Monad m => m a -> (a -> m b) -> m b
Run Code Online (Sandbox Code Playgroud)

为了简化,我们替换Maybem:

(>>=) :: 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称为样板代码),第一个有点无意义.但是,接下来的两个,我更喜欢最后一个.对于 …

monads haskell types typeclass

17
推荐指数
2
解决办法
868
查看次数

有没有办法用纯函数式语言调用两个函数(一个接一个)?(在非io模式下)

我试图理解纯函数式语言的执行顺序.

我知道在纯函数式语言中,没有必要的执行顺序.

所以我的问题是:

假设有两个功能.我想知道我可以在一个接一个地调用一个函数的所有方法(除了从另一个函数嵌套调用一个函数)(和io-mode除外).

我想在Haskell或伪代码中看到示例.

lambda haskell functional-programming

3
推荐指数
2
解决办法
5380
查看次数