gpt4 book ai didi

Haskell-以奇怪的方式组合三个函数

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

我有三个函数 x y z 和一个名为 functionComposer 的函数。

我希望 functionComposer 将函数 x y z 作为参数,并返回一个函数,该函数使用 y 和 z 的结果作为 x 的参数并应用 x。

用数学符号表示:x(y(a),z(b))

我不是要求这个:functionComposer x y z = x.y.z

例如:

double x = x + x

summer x y = x + y

functionComposer summer double double = summer (double) (double)

如果 x = 2,结果应为 8 (2+2)+(2+2)

最佳答案

您还可以像这样使用 (->) a 的应用实例

import Control.Applicative


funcComp summer double1 double2 = summer <$> double1 <*> double2

或者 monad 实例

funcComp summer double1 double2 = liftM2 summer double1 double2

理解这一点的方法是,对于 (->) a,applicative 和 monad 实例都旨在对 double1 的函数值进行“参数化”和 double2 都接受。

关于Haskell-以奇怪的方式组合三个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620257/

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