iX Special 2020
S. 110
Funktionale Sprachen
Idris und Haskell

Funktionale Programmierung mit Haskell und Idris

Effekte kontrollieren

Michael Sperber

Der funktionalen Programmiercommunity hängt vielerorts der Ruf an, esoterischen Code zu schreiben, der wenig bis gar nichts mit der „Realität“ zu tun hat. Das ist insbesondere in der funktionalen Programmiersprache Haskell möglich, und der noch junge Abkömmling Idris setzt bei der Esoterik noch eins drauf.

Dieser Artikel ist eine kleine Reise durch einige ausgewählte Elemente der funktionalen Sprachen Haskell und Idris, die das Programmieren mit „Effekten“ in den Griff bekommen – also den Aspekt der Programmierung, der in der Praxis am meisten Probleme macht. Vorkenntnisse in Haskell oder Idris sind für die Lektüre zwar hilfreich, aber nicht erforderlich; ein wenig Geduld und Fantasie sind allerdings notwendig.

Effekte, was soll das überhaupt sein?

Der Begriff des „Seiteneffekts“ ist allgemein bekannt: Die Auswertung eines Ausdrucks hat in vielen Programmiersprachen nicht nur ein Ergebnis, sondern „verändert die Welt“, also den Zustand des Programms, und zwar durch eine Zuweisung an eine Variable oder ein Objektattribut:

Alle heise-Magazine mit heise+ lesen

3,99 € / Woche

Ein Abo, alle Magazine: c't, iX, Mac & i, Make & c't Fotografie

  • Alle heise-Magazine im Browser und als PDF
  • Alle exklusiven heise+ Artikel frei zugänglich
  • heise online mit weniger Werbung lesen
  • Vorteilspreis für Magazin-Abonnenten
Jetzt unbegrenzt weiterlesen Vierwöchentliche Abrechnung.

Alle Ausgaben freischalten

2,60 € 1,49 € / Woche

Nach Testphase 2,60 € wtl.

  • Zugriff auf alle iX-Magazine
  • PDF-Ausgaben zum Herunterladen
  • Zugriff in der iX-App für unterwegs
  • Über 35% günstiger im Testzeitraum
Jetzt testen Nach Testphase jederzeit monatlich kündbar.

Ausgabe einmalig freischalten

14,90 € / Ausgabe

Diese Ausgabe lesen – ohne Abobindung

  • Sicher einkaufen im heise shop
  • Magazin direkt im Browser lesen
  • Dauerhaft als PDF behalten

Kommentare lesen (4 Beiträge)