Function Haskell编写自己的函数来编写函数
所以我试着编写我自己的函数,在Haskell中编写n次函数 例如,输入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) 也就
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,这不是一个数字。好的,非常感谢。这实际上澄清了很多问题。