Einordnung Recursion Tutor
Schauen wir uns jetzt die Funktion und das Diagramm von eben nochmal genauer an.
Das Diagramm hat sich mit den ersten Klicks jeweils vergrößert. Gleichzeitig hat sich das Argument im oberen Knoten verkleinert. Um genau zu sein, hat sich das Argument immer um genau eins verkleinert. Am Anfang sind die grauen Knoten auf die geklickt wurde gelb geworden und neue graue Knoten wurden sichtbar.
Irgendwann kamen wir bei der 1 als Argument an, der Mindestanzahl an Gästen auf unserer Party. An der Stelle hat sich das Diagramm auch nicht mehr vergrößert, sondern die Knoten haben ihre Farbe verändert und im unteren Knoten sind Ergebnisse erschienen, bis schließlich das Endergebnis der Funktion berechnet wurde. Die Elemente der Liste haben sich zu 6 aufsummiert, was die Anzahl der Begrüßungen bei 4 Gästen entspricht. Die anderen jeweils unteren Knoten haben Teilergebnisse enthalten, von den jeweiligen Funktionsaufrufen im oberen Knoten.
Das Diagramm visualisiert, dass die Funktion das Problem sozusagen nicht direkt löst, sondern stattdessen das Problem Schritt für Schritt verkleinert, bis es nicht mehr möglich war (wir also bei einem Gast angekommen sind). Dieses Prinzip, das Problem immer weiter zu verkleinern, ist die grundlegende Idee der Rekursion.
Das Tool visualisiert Schritt für Schritt, was passiert, wenn eine rekursive Funktion aufgerufen wird. Es zeigt dir:
- Jeden einzelnen Funktionsaufruf als eigenen Knoten in einem Diagramm
- Die Argumente, mit denen die Funktion jeweils aufgerufen wird
- Wie die Funktion durch ihren Code "läuft" und so Schritt für Schritt das Ergebnis berechnet wird