编写一个doItX :: (a -> a -> a) -> a -> Int -> a函数,将第一个参数乘以f x第二个参数。
doItX (*) 2 1 == 2
doItX (++) "a" 6 == "aaaaaa"
doItX (*) 2 3 == 8
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
doItX f a x
| x==1 = a
| x>1 = doItX f (f a a) (x-1)
Run Code Online (Sandbox Code Playgroud)
如果 是 2 或更小,则效果很好x,但对于第三个示例,它返回16而不是8。