Typberatung
Haskell gibt es bereits seit Ende der 1980er-Jahre. Die universitäre Forschung hatte sich zu dieser Zeit schon länger mit funktionaler Programmierung als zukunftsweisendem Paradigma beschäftigt. Standard ML, CAML, Miranda, Hope und Scheme waren damals prominente funktionale Sprachen. In den zu dieser Zeit noch winzigen Communities zeichneten sich schon klare Demarkationslinien ab:
• statische Typsysteme vs. dynamische Typen.
• strikte vs. nicht strikte Auswertung. Die Unterscheidung zwischen statischen und dynamischen Typen existiert immer noch, zwischen Sprachen wie Python, Ruby oder Lua (dynamisch) auf der einen und Java sowie Rust (statisch) auf der anderen Seite. Die heutigen statischen Typsysteme sind fast alle Abkömmlinge der bahnbrechenden Arbeit aus der funktionalen Programmierung damals. Was wir heute als Generics kennen, nahm in Standard ML seinen Anfang.
Das zweite Unterscheidungsmerkmal, strikt vs. nicht strikt, ist dagegen den meisten heutigen Programmiersprachen fremd. Dabei geht es um Aufrufe von Funktionen beziehungsweise Methoden, die Argumente übergeben. Wird etwa im Term f(g(x)) zunächst g(x) ausgewertet und dann f() aufgerufen? Fast alle gängigen Programmiersprachen beantworten diese Frage heute mit ja. Damals allerdings gab es Hope und Miranda, die nicht strikt waren, also den Aufruf von g(x) erst auswerteten, wenn das Ergebnis tatsächlich benötigt wurde.
Das klingt merkwürdig. In erster Näherung führt es dazu, dass g(x) gar nicht ausgewertet wird, wenn f() es nicht benötigt. Nun nutzt das durchschnittliche Programm in einer strikten Sprache alle Argumente eines Funktionsaufrufs. In nicht strikten Sprachen schreibt man aber andere Programme. Zum Beispiel kann ein nicht striktes Programm scheinbar unendliche Datenstrukturen bauen. Sie werden nur so weit ausgewertet, wie das Programm ihren Inhalt anfragt. Die nicht strikte Auswertung erlaubt, fast alle Kontrollstrukturen konventioneller Sprachen in die Daten zu verlegen und damit sehr flexibel Modularität herzustellen.
Die Forschung bei
Sie lesen eine Vorschau, starten Sie ein Abonnement, um mehr zu lesen.
Starten Sie Ihre kostenlosen 30 Tage