Rekursion

Von Rekursion spricht man, wenn eine Funktion sich in ihrer Definition selbst benutzt oder wenn sich mehrere Funktionen gegenseitig benutzen.

Ein Beispiel dafür ist die Fibonacci-Funktion:

f(0) = 1
f(1) = 1
f(n) = f(n - 1) + f (n - 2), wenn n >= 2

Die Fibonacci-Funktion ist nach Leonardo Fibonacci, einem mittelalterlichen Mathematiker, benannt.

Die Funktion kann wie folgt in Lisp notiert werden:

(setq fibonacci
  (lambda (n)
    (if
      (< n 2)
      1
      (+ (fibonacci (- n 1)) (fibonacci (- n 2))))))

Anstelle mit setq und lambda kann man Funktionen auch kürzer mit defproc erzeugen:

(defproc fibonacci (n)
  (if
    (< n 2)
    1
    (+ (fibonacci (- n 1)) (fibonacci (- n 2)))))

Das Ergebnis ist in beiden Fällen das Gleiche.

Links
https://de.wikipedia.org/wiki/Rekursion
https://de.wikipedia.org/wiki/Fibonacci-Folge
https://de.wikipedia.org/wiki/Leonardo_Fibonacci


fibonacci.sheet.xml