MarkusRaab hat gefragt ob es möglich ist mit funktionaler Programmierung auch ein neues Array zu erzeugen.

Lösung in Python:

def creator (f,c,n):
        if n==1:
                return c
        else:
                return creator (f, lambda x: f(c(x)), n-1)


f=creator (lambda y: y + [1], lambda x:x, 5)
print f([])

Lösung in Lisp

(define (creator f c n)
  (cond ((= n 0)
         c)
        (else
         (creator f
                  (f c)
                  (- n 1)))))

((creator (lambda (x)
            (lambda (y) (x (cons 'a y))))
           (lambda (x) x)
           7)
 '())