在Haskell中多次应用函数

Mir*_*lov 0 haskell higher-order-functions

向大家学习Haskell("高阶函数"一节,"有些高阶有序"这一小节)描述了一个函数applyTwice,它在一个参数上调用两次函数:

applyTwice :: (a -> a) -> a -> a  
applyTwice f x = f (f x)
Run Code Online (Sandbox Code Playgroud)

但是我需要一个函数,它可以在某个参数上应用某些函数任意次数.例如applyN 3 f x,相当于f $ f $ f x.我如何在Haskell中编写重复应用程序的功能?请发布任何可能的解决方案,使用递归,高阶函数或其他任何东西.

Emi*_*mil 6

我总是这样做iterate f x !! n.