Wieviele rekursive Funktionsaufrufe sind bei funktionalen Programmiersprachen möglich?
-
Wenn bei funktionalen Programmiersprachen Schleifen nur über Rekursion gelöst werden können, wie viele Funktionensaufrufe kann es dann geben?
Gibt's da nicht auch einen Stack, der irgendwann voll ist?Nehmen wir als Beispiel mal die Programmiersprache Haskell, wie ist es da gelöst?
-
Stack schrieb:
Wenn bei funktionalen Programmiersprachen Schleifen nur über Rekursion gelöst werden können, wie viele Funktionensaufrufe kann es dann geben?
Gibt's da nicht auch einen Stack, der irgendwann voll ist?Klar gibt es den. Aber natürlich nicht nur 1M groß wie in C++ üblich, sondern man kann den gesamten Speicher damit vollballern.
Und das, was der Compiler zu simplen Schleifen auflösen kann, das löst er auch zuverlässig auf. Damit fallen die typische rekursive Aufrufe, die sehr tief gehen würden, komplett weg.
-