Linux Magazin germany

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.

Mehr von Linux Magazin germany

Linux Magazin germany10 min gelesen
Auf Spurensuche
Wie Entwickler und Admins Problemen mit Jaeger auf die Schliche kommen Mancher Administrator, der sich zum ersten Mal in seiner Karriere einem Container-basierten Setup mit darauf laufenden, verteilten Applikationen gegenüber sieht, mag denken, dass
Linux Magazin germany8 min gelesen
Fliegender Wechsel
Marktübersicht: Quelloffene Alternativen zu MS Exchange Seit Jahrzehnten dominiert Microsoft Exchange den Markt für E-Mail-Infrastruktur und Groupware. Gerade im Unternehmensumfeld gilt die Software in Verbindung mit dem allgegenwärtigen Outlook-Clie
Linux Magazin germany1 min gelesen
Linux Magazin Germany
Geschäftsführer Christian Müller, Rainer Rosenbusch Chefredakteur, Brand/Editorial Director Jörg Luther (V.i.S.d.P.), jluther@linux-magazin.de (jlu) Stv. Chefredakteur Jens-Christoph Brendel, jcb@linux-magazin.de (jcb) Redaktionsltg. Online Ulrich Ba

Ähnlich