#4 higher order function. initial