Alle Zahlen zwischen zwei Grenzen zusammenrechnen

Um die Zahlen zwischen zwei Grenzen zusammenzurechnen, wird das neutrale Element ausgegeben, wenn die Zahl der linken Grenze größer ist als die der rechten. Ansonsten wird die aktuelle Zahl der linken Grenze mit dem passenden Operator verknüpft mit dem erneuten Funktionsaufruf mit der nachfolgenden Zahl für die linke Grenze.

Wenn nur die graden/ungraden Zahlen verwendet werden sollen, wird das mit dem Prädikat even? abgefragt.

Wenn es dann darum geht, eine allgemeine Funktion zu implementieren, die als Basis verwendet werden kann, wird die Grenze mit dem neutralen Element beibehalten. Als Eingabe gibt es neben den beiden Grenzen aber noch zwei Funktionen, die auch einfach als Variablen dargestellt werden können. Die erste Funktion wird dann für die aktuelle linke Grenze aufgerufen, die verknüpft werden soll. Die zweite dann im erneuten Funktionsaufruf, um den Nachfolger für die Zahl der linken Grenze zu bestimmen. Statt der linken Grenze steht im erneuten Aufruf also der Funktionsaufruf mit der linken Grenze.

Die Eingaben für die Parameter-Funktionen haben das übliche lambda-Aussehen mit Parameter(n) und Rumpf. Kompliziertere Funktionen können auch ausgelagert definiert und dann einfach ausgerufen werden. Die Übergabe muss also nicht als komplettes lambda-Konstrukt erfolgen.

In der Signatur haben die Parameter-Funktionen (also die Funktionen, die beim Aufruf der Oberfunktion übergeben werden) das typische Aussehen mit zwei Klammern und einem Pfeil in der Mitte, der von der Eingabe zur Ausgabe führt.

Keine Kommentare:

Kommentar veröffentlichen