Haskell ist eine rein funktionale Programmiersprache: Funktionen sind
zustandslos, Ausdrücke frei von Seiteneffekten, und jede Berechnung lässt
sich durch ihren Rückgabewert ersetzen (referenzielle Transparenz). Das
macht Programme leichter nachvollziehbar und testbar.
Mehr erfahren
Ein starkes, statisches Typsystem mit Typinferenz fängt viele Fehler
bereits zur Compile-Zeit ab – von einfachen Typfehlern bis zu komplexeren
Invarianten, die sich mit algebraischen Datentypen und GADTs direkt im
Typsystem ausdrücken lassen.
Haskell wertet standardmäßig lazy aus: Ausdrücke werden erst berechnet,
wenn ihr Ergebnis tatsächlich benötigt wird. Das ermöglicht elegante
Abstraktionen wie unendliche Datenstrukturen, verändert aber auch, wie man
über Performance und Speicherverbrauch nachdenken muss.
Seiteneffekte wie IO, Zustand oder Fehlerbehandlung werden nicht versteckt,
sondern über Typen wie Monaden explizit im Typsystem sichtbar gemacht – ein
zentrales Muster, das sich durch moderne funktionale Programmierung in
vielen Sprachen zieht.