[ Seminarthemen SS 2001] ... [ Inhaltsverzeichnis ] ... [ Einführung in Haskell ]
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 ]