Von Fröschen und Tischlampen

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Von Fröschen und Tischlampen

Inhaltsverzeichnis

Der Lampen-Stream

Zunächst definieren wir den Stream (abzählbar) unendlich vieler Tischlampen, die alle ausgeschaltet sind.
Jede Lampe ist mit einem Schalter ausgestattet, mit dem die Lampe entsprechend ihres Betriebszustandes entweder ein- oder ausgeschaltet werden kann:

Frosch-Sprünge mit verschiedenen Weiten

Um jede n-te Lampe schalten zu können, erweitern wir die Stream-Sprachelemente mit der Prozedur höherer Ordnung(stream-map-n <n>).
In Analogie zu stream-map bewirkt ein Aufruf von (stream-map-n <n>) die Anwendung einer Prozedur proz auf jedes n-te Element eines Streams stm:

In folgendem Beispiel wird jede dritte Lampe eingeschaltet...

... bzw. ein- und wieder ausgeschaltet:

Nun können wir Frosch-Sprünge mit aufsteigenden Sprungweiten definieren:

Unendlich viele Frösche springen über unendlich viele Tischlampen

Auswertung

Um das Resultat besser verallgemeinern zu können, fassen wir die Nummern der Lampen zusammen, die nach allen Frosch-Sprüngen eingeschaltet sind. In der Vermutung, dass das (abzählbar) unendlich viele Lampen sind, soll dieses Ergebnis wiederum als Stream repräsentiert werden:

Ergebnis: Offensichtlich sind nach den Frosch-Sprüngen alle Lampen eingeschaltet, deren Nummern Quadratzahlen sind.

Zurück zu Streams.

Persönliche Werkzeuge