Kapitel 9. Unbestimmte Schleifen
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
In den vorherigen Kapiteln hast du gesehen, wie FP die Schleifen for
und foreach
durch LINQ-Funktionen wie Select()
oder Aggregate()
ersetzt. Das ist absolut großartig, vorausgesetzt, du arbeitest mit einem Array fester Länge oder einer Aufzählung, die selbst bestimmt, wann es Zeit ist, die Iteration zu beenden.
Aber was tust du, wenn du dir nicht sicher bist, wie lange du iterieren willst? Was ist, wenn du so lange iterieren willst, bis eine Bedingung erfüllt ist?
In diesem Kapitel gebe ich dir eine nicht funktionierende Umsetzung des alten indischen Brettspiels Snakes and Ladders.1 Hier sind die Regeln für alle, in deren Kindheit dieser Brettspielklassiker auf tragische Weise fehlte:
-
Das Spielbrett besteht aus 100 Feldern. Die Spieler beginnen auf Feld 1 und versuchen, Feld 100 zu erreichen.
-
Jeder Spieler ist an der Reihe, würfelt einen einzelnen Würfel und bewegt seinen Spielstein um die angegebene Anzahl an Feldern vorwärts.
-
Wenn du auf dem unteren Ende einer Leiter landest, muss die Spielfigur die Leiter nach oben "klettern", um dem Feld 100 näher zu kommen.
-
Wenn die Spielfigur auf dem Kopf der Schlange landet, sollte sie bis zum Ende des Schwanzes "rutschen" und sich damit weiter vom Feld 100 entfernen.
-
Ein Spieler, der eine 6 würfelt, darf einen weiteren Zug machen.
-
Der erste Spieler, der Feld ...
Get Funktionale Programmierung mit C# now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.