我正在尝试在haskell中编写一个幂函数,使用函数组合计算f到n的幂,其中f是函数本身。
这是我到目前为止所做的:
let pow 0 f = (\x -> x)
pow n f = f . (pow (n-1) f)
in 2 ((\x -> x+1) 2)
我希望它将函数 f(x)= x + 1 传递给power函数并返回函数的平方。我尝试将值2传递给 f(x)函数,所以我认为它会返回4
当我在haskell.org上运行时,我得到:
:: (Num a, Num (a -> t)) => t
答案 0 :(得分:2)
您的广告无效:2 ((\x->x+1) 2)
格式错误(因为它等同于2 3
)。
let pow 0 f = (\x->x); pow n f = f.(pow (n-1) f) in (pow 2 (\x -> x + 1)) 2
确实产生了4
。