CGI Programmierug mit Haskell


[ Seminarthemen SS 2001] ... [ Inhaltsverzeichnis ] ... [ Einführung in Haskell ]


Einleitung


Ausblick

Das Ziel dieser Ausarbeitung ist es, die Möglichkeiten von Haskell für die CGI Programmierung anhand einfacher Beispiele darzustellen. Grundkenntnisse der funktionalen Programmierung und speziell Haskell sind hilfreich, aber nicht erforderlich, da alle benutzten Sprachkonstrukte im Abschnitt [ Einführung in Haskell ] erläutert werden.

Was ist funktionale Programmierung?

Funktionale Programmiersprachen bestehen ausschließlich aus Funktionen. Ein funktionales Programm selbst ist eine Funktion, die Eingaben entgegen nimmt und ihre Ausgabe als Resultat liefert. In den meisten Fällen wird diese Hauptfunktion nicht in der Lage sein, das Ergebnis mit Hilfe elementarer Sprachelemente direkt zu berechnen, sondern wird sich anderer Funktionen bedienen und deren Ergebnisse miteinander kombinieren. Während es sich bei imperativen Programmiersprachen um eine Reihe von Kommandos handelt, die in einer bestimmten Reihenfolge ausgewertet werden, spielt die Reihenfolge in der Welt der funktionalen Sprachen normalerweise keine Rolle. Vielmehr handelt es sich um Ausdrücke (Formeln), die je nach Bedarf ausgewertet werden. Hierbei ist zu beachten, daß es in funktionalen Sprachen keine Variablen mit wechselnden Werten gibt, sondern nur Funktionen, die einen Wert liefern. Dabei ist eine Funktion kein Verweis auf eine Speicheradresse sondern kann als eine Konstante betrachtet werden. Jeder Funktionsaufruf mit den selben Parametern führt auch immer zum selben Resultat. Per Definition sind Seiteneffekte somit ausgeschlossen. Die modulare Softwareentwicklung wird heute als good practice angesehen. Da funktionale Sprachen Modularität besonders gut unterstützen, sind die Programme weitaus kürzer, besser wartbar und weniger anfällig gegen Fehler als in imperativen Sprachen geschriebene. Zwei Aspekte, die die Modularität fördern sind Higher Order Functions und Lazy Evaluation . Ein weiteres wichtiges Element funktionaler Sprachen ist die Rekursion. Da Schleifen in den meisten Fällen nicht ohne Zuweisungen auskommen, gibt es sie in funktionalen Sprachen nicht. Aus diesem Grund werden Wiederholungen durch Rekursion abgebildet.


[ Seminarthemen SS 2001] ... [ Inhaltsverzeichnis ] ... [ Einführung in Haskell ]