FPr (Programmiersprache)

Aus MARJORIE-WIKI
Wechseln zu: Navigation, Suche

FPr (Function-level Programmierung rechtsassoziativ) ist ein Programmiersprachenkonzept, das sich an dem Kombinator-Stil der FP-Systeme orientiert, der von John Backus in der Turing-Award-Lecture[1] vorgeschlagen wurde. In FPr werden konsequent nur Infix-Kombinatoren (dyadische Operatoren) und (monadische) Funktionen unterstützt. Die durchgehende Einhaltung der referentiellen Transparenz ist der Grund, dass es in FPr, wie in den FP-Systemen, keine Variablen gibt.

Funktionales Programm für das Innere Produkt mit Kombinatoren[Bearbeiten]

In Anlehnung zum IP-Programm von John Backus:

ip == (trans map (1*2)&) \ (1+2)&

Andere Anwendungsbeispiele[Bearbeiten]

fakultät == ((1 &) , iota) \ (1 * 2) &
"Definition einer Funktion"
1:(list :: aa bb cc) → aa
2:(list :: aa bb cc) → bb
tail:(list :: aa bb cc) → (list :: bb cc)
reverse:(string :: 'hallo') → (string :: 'ollah')
(string :: 'hallo') map ucase& → (string :: 'HALLO')
(10&)+(20&)+(30&) → 60
((1='0'&)->*tail):(string::'000004711')   -->   (string :: '4711')
"while-Schleife"

Einige gebräuchliche Kombinatoren[Bearbeiten]

Applikation:    f : x
Komposition:    f o g
Konstruktion:   f1 , f2 , ... , fn , nil
Kondition:      p → f ; g
Konstante:      x &
ApplyToAll:     liste map f
Insert:         liste \ f
Filter:         liste filter p
Schleife:       p →* f

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

Info Sign.svg Dieser Wikipedia-Artikel wurde, gemäß GFDL, CC-by-sa mit der kompletten History importiert.