gpt4 book ai didi

Haskell 运算符或函数用于将函数从 monad 应用于值?

转载 作者:行者123 更新时间:2023-12-04 18:32:45 25 4
gpt4 key购买 nike

我正在寻找一个在 Haskell 中实际上是 Monad 的函数或运算符。相当于Applicative接线员 <*>它应用一个单子(monad) Action 而不是一个裸函数,而不是这个:
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
我正在寻找看起来像这样的东西:
... :: Monad m => m (a -> m b) -> m a -> m b
我不敢相信这不是标准功能,但我看不到任何匹配的东西。我错过了什么吗?

最佳答案

这将是其他两个基本 monad 函数的简单组合,即 join ap ;自从:

ap :: Monad m => m (a -> b) -> m a -> m b
join :: Monad m => m (m a) -> m a

我们得到:
(join .) . ap :: Monad m => m (a -> m b) -> m a -> m b

也:
(join .) . (<*>) :: Monad m => m (a -> m b) -> m a -> m b

或者,仅使用绑定(bind)运算符,另一个构造将是:
(. (>>=)) . (>>=) :: Monad m => m (a -> m b) -> m a -> m b

关于Haskell 运算符或函数用于将函数从 monad 应用于值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37902540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com