gpt4 book ai didi

haskell - 带有两个参数的绑定(bind)运算符 (=<<)

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

不幸的是,无法想出更好的主题标题......抱歉。

我有一个函数,它接受两个纯参数并返回一个单值。我有两个一元值需要输入其中。这可能是我所缺少的愚蠢的东西。如果它只是一个参数,我通常会使用 (=<<),但现在我只能使用两个参数。

所以我需要一个具有这种类型签名的函数

(a1 -> a2  -> m b) -> m a1 -> m a2 -> m b

胡格尔没有给我任何东西。我知道我可以只使用“do”表示法,但我想知道这是否可以不用?是否可以使用绑定(bind)运算符进行柯里化(Currying),如下所示:

(function =<< value1) =<< value2

我认为“liftM2”可能有用,但它需要一个返回纯值的函数。

谢谢。

最佳答案

一种可能的解决方案是将 join::Monad m => m (m a) -> m aliftM2 结合使用:

join $ liftM2 function value1 value2

关于haskell - 带有两个参数的绑定(bind)运算符 (=<<),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342963/

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