power :: (a -> a) -> Int -> a -> a
power f 0 = (\x -> x)
power f n = (\x -> f (power f (n-1) x))
Since the function is called power, there is one obvious application that springs to mind, i.e. raising to a power:
raise :: Int -> Int -> Int
raise x y = power (*x) y 1
2 responses to “Exercise 9.8”
The following is a possible definition for power using
higher-order functions:
It can be simplified to:
power f n = foldr (.) id (replicate n f)