Kurs:Algorithmen und Datenstrukturen/Vorlesung/Grundidee Funktionaler Programmierung: Unterschied zwischen den Versionen

Aus testwiki
Zur Navigation springen Zur Suche springen
 
(kein Unterschied)

Aktuelle Version vom 27. März 2019, 12:22 Uhr

Vorlage:Navigationsleiste/Algorithmen und Datenstrukturen

Funktionale Algorithmen

In diesem Kapitel wird die funktionale Programmierung behandelt.

Grundidee

Definition zusammengesetzter Funktionen durch Terme mit Unbestimmten.

Ein Beispiel einer einfachen Funktionsdefinition ist f(x)=5x+1.

Erinnerung Definition Term :
*Variable ist ein Term 
*Konstanten-Symbol ist ein Term 
*Sind t1,...,tn Terme und f ein n-stelliges Funktionssymbol, so ist f(t1,...,tn) ein Term

Beispiele für Terme

Unbestimmte (Symbole)

  • x,y,z … vom Typ int
  • q,p,r … vom Typ bool

Terme mit Bestimmten

  • 1+1, 3*2, ...

Terme mit Unbestimmten

  • Terme vom Typ int
    • x, x-2, 2x+1, (x+1)(y-1)

Terme vom Typ bool

  • p,ptrue,(ptrue)(qfalse)

Definition

Ein funktionaler Algorithmus ist eine Menge von Funktionsdefinitionen f1 bis fm mit:

f1(v1,1,...,v1,n1):=t1(v1,1,...,v1,n1),
...
fm(vm,1,...,vm,nm):=tm(vm,1,...,vm,nm).

Die erste Funktion f1 wird wie beschrieben ausgewertet und ist die Bedeutung (=Semantik) des Algorithmus.

f1 ist die zustands-bestimmende Eingabe aus der die Werte der Ausgabe abgelesen werden.

Funktionale Algorithmen sind die Grundlage einer Reihe von universellen Programmiersprachen, z.B. APL und Lisp. Diese Programmiersprachen werden als funktionale Programmiersprachen bezeichnet.

Literatur

Da die Vorlesungsinhalte auf dem Buch Algorithmen und Datenstrukturen: Eine Einführung mit Java von Gunter Saake und Kai-Uwe Sattler aufbauen, empfiehlt sich dieses Buch um das hier vorgestellte Wissen zu vertiefen. Die auf dieser Seite behandelten Inhalte sind in Kapitel 3.2 zu finden.


R-0 Discussion R-3