gpt4 book ai didi

haskell - 组合具有更高元数的函数

转载 作者:行者123 更新时间:2023-12-04 02:55:50 26 4
gpt4 key购买 nike

我不明白用 arity > 1 组合函数。
在 ghci 7.4.1 我输入:

((*).succ) 3 4
> 16

我不完全理解数学转换,但很明显它与
(*) (succ 3) 4

但是当我这样做时:
( (\x y z -> x).(\a b -> a*b) ) 2 3 4 5
> 10
( (\x y z -> y).(\a b -> a*b) ) 2 3 4 5
> No instance for (Num (a0 -> t0))

现在我完全迷路了。谁能解释会发生什么?附言。我知道 haskell 中的所有内容都只有 1 个参数,但它并没有真正帮助我 :)

最佳答案

以这种方式解决:

(f . g) x = f (g x)
(f . g) x y = f (g x) y -- applying y

然后将 f 替换为 (*) , g 与 succ和 x 和 y 及其值:
((*) . succ) 3 4 = (*) (succ 3) 4
= (*) 4 4
= 16

关于haskell - 组合具有更高元数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905867/

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