Tail-Calls und Tail-Call-Optimierung
Eine bestimmte Art der Rekursion wird als Tail-Call-Rekursion bezeichnet: Sie tritt auf, wenn eine Funktion als abschließende Operation sich selbst aufruft. Tail-Call-Rekursion ist sehr wichtig, denn sie ist diejenige Form der Rekursion, die sich am leichtesten durch Umwandlung in eine Schleife optimieren lässt. Schleifen beseitigen die Gefahr eines Stapelspeicherüberlaufs und verbessern die Performance, indem sie die rekursiven Funktionsaufrufe vermeiden. Die Optimierung von Tail-Rekursionen werden zwar durch die JVM noch nicht unterstützt, dafür beherrscht sie aber scalac
.
Leider ist unser Fakultätsbeispiel noch keine Tail-Rekursion, denn factorial
ruft erst sich selbst auf und führt erst danach eine Multiplikation ...
Get Programmieren mit Scala now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.