Funktionen als Daten

bisher:

f :: Int -> Int
f x = 2 * x + 5

äquivalent: Lambda-Ausdruck

f = \ x -> 2 * x + 5

Lambda-Kalkül: Alonzo Church 1936, Henk Barendregt 198*, ...

Funktionsanwendung:

(\ x -> B) A  =  B [x := A]
ist nur erlaubt, falls keine in A freie Variable durch ein Lambda in B gebunden wird.



Johannes Waldmann 2014-07-10