O'Reilly logo

Programmieren mit Scala by Alex Payne, Dean Wampler

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required