Function Haskell编写自己的函数来编写函数

Function Haskell编写自己的函数来编写函数,function,haskell,Function,Haskell,所以我试着编写我自己的函数,在Haskell中编写n次函数 例如,输入 compose (+1) 3 将返回f(x)=x+3 现在我的尝试如下,但实际上很幼稚,目前不起作用 compose f 0 = (*1) compose f n = (compose f n-1).a 在第二种情况下,您试图引用a,我认为您的意思是f,从那时起 compose f n = (compose f (n-1)) . f (还要注意,composefn-1在代码中被解析为(composefn)-1) 也就

所以我试着编写我自己的函数,在Haskell中编写n次函数

例如,输入

compose (+1) 3 
将返回
f(x)=x+3

现在我的尝试如下,但实际上很幼稚,目前不起作用

compose f 0 = (*1)
compose f n = (compose f n-1).a

在第二种情况下,您试图引用
a
,我认为您的意思是
f
,从那时起

compose f n = (compose f (n-1)) . f
(还要注意,
composefn-1
在代码中被解析为
(composefn)-1

也就是说你有

compose f 3 = (compose (+1) 2)             . f
            = ((compose (+1) 1)       . f) . f
            = (((compose (+1) 0) . f) . f) . f
            = ((((*1)            . f) . f) . f
哦,顺便说一句,你可以写

compose f 0 = id

这表达了
composef0
应该什么都不做的想法。

好的,所以我在测试,似乎我遇到的主要问题是“n-1”周围的括号。你可能有什么原因使函数出错吗?是的,因为它被解析为
((组合Fn)-1)
,也就是说,它试图从
组合Fn
中减去1,这不是一个数字。好的,非常感谢。这实际上澄清了很多问题。