Kunst mit Funktion

Slitherlink-Puzzles lösen in Haskell

Wissen | Know-how

Funktionale Programmierung ist in akademischen Kreisen beliebt, in freier Wildbahn aber eher selten. Das Beispiel eines Löseprogramms für das Papier-und-Bleistift-Puzzle Slitherlink zeigt, wie elegant sich so etwas in der funktionalen Sprache Haskell ausdrücken lässt. Und die Parallelisierung auf mehrere CPU-Kerne gibts fast gratis dazu.

Wenn man gewohnt ist, in Sprachen wie C++, JavaScript oder Perl zu programmieren, ist die Begegnung mit einer funktionalen Programmiersprache wie Haskell ein Kulturschock: Es gibt keine Variablen. Jedenfalls nicht in dem Sinne, wie man das gewohnt ist, als Speicherplatz, der im Laufe der Zeit verschiedene Werte annehmen kann. Wenn irgendwo steht i = 1, dann kann nicht ein paar Zeilen später i = 2 sein. Ja aber Moment, wie macht man denn dann eine Schleife? Gar nicht. Das damit Bezweckte drückt man mit anderen Mitteln aus, mit Listen und mit Rekursion.

Haskell-Programme bestehen aus Funktionen, und zwar im mathematischen Sinne: Zu jedem Eingabewert gibt es genau einen Ausgabewert. Ruft man eine Funktion mehrmals mit denselben Parametern auf, liefert sie garantiert immer dasselbe Ergebnis. Es gibt keine globalen Variablen und auch keinen inneren Zustand, der das Ergebnis einer Funktion beeinflussen könnte. ...

Sie möchten wissen, wie es weitergeht?

Kunst mit Funktion

2,49 €*

c't 23/2012, Seite 182 (ca. 5.5 redaktionelle Seiten)
Direkt nach dem Kauf steht Ihnen der Artikel als PDF zum Download zur Verfügung.

Artikel-Vorschau
  1. Störende Außenwelt
  2. Aufwärmübungen
  3. Spaß mit Listen
  4. Quicksort
  5. In memoriam Haskell Curry
  6. Verborgene Strenge
  7. Zustandswolken
  8. Schleifen knüpfen
  9. Nur vielleicht
  10. Alle Kerne unter Dampf
  11. Mehr Haskell
  12. Slitherlink

Lesen Sie hier die Verbraucherinformationen

* Alle Preise verstehen sich inklusive der gesetzlichen MwSt.

Als c't-Plus-Abonnent gratis lesen

weiterführende Links

Kommentare

Infos zum Artikel

Kapitel
  1. Störende Außenwelt
  2. Aufwärmübungen
  3. Spaß mit Listen
  4. Quicksort
  5. In memoriam Haskell Curry
  6. Verborgene Strenge
  7. Zustandswolken
  8. Schleifen knüpfen
  9. Nur vielleicht
  10. Alle Kerne unter Dampf
  11. Mehr Haskell
  12. Slitherlink
1Kommentare
Kommentare lesen (1 Beitrag)
  1. Avatar
Anzeige

Anzeige

weiterführende Links
  1. Zu diesem Artikel hat die Redaktion noch folgendes zusammengestellt:

    Links (6)

Anzeige