f to an argument arg, additional arguments ...
are supplied unchanged in each call. E.g. iterate(3, foo, 42.14, "bar") is equivalent to
foo(foo(foo(42.14, "bar"), "bar"), "bar").
iterate(n, f, arg, ...)f, must be >= 0. If 0, arg is returned.f to.f at each application.f.