高次関数を使用して fac 1 = 1、fac 2 = 2、fac 3 = 6 などの階乗関数を再作成しようとしていますが、うまくいきません。私のfold関数は、私が与えている入力に関係なく、空のリストを返し続けます。誰でも私を助けることができますか?
これが私がこれまでに持っているものです:
fold f a [] = []
fold f a (x:xs) = fold f (f a x) xs
fac n = fold (*) 1 [1..n]
高次関数を使用して fac 1 = 1、fac 2 = 2、fac 3 = 6 などの階乗関数を再作成しようとしていますが、うまくいきません。私のfold関数は、私が与えている入力に関係なく、空のリストを返し続けます。誰でも私を助けることができますか?
これが私がこれまでに持っているものです:
fold f a [] = []
fold f a (x:xs) = fold f (f a x) xs
fac n = fold (*) 1 [1..n]