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
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