小编dan*_*oly的帖子

对参数应用函数 x 次的函数

编写一个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

haskell higher-order-functions

2
推荐指数
1
解决办法
97
查看次数

标签 统计

haskell ×1

higher-order-functions ×1