Tijdens het hoorcollege hebben we gezien dat in de lambda calculus functies gebruikt kunnen worden om booleans en nummers voor te stellen. Ook in Haskell kan je lambda expressies schrijven, de identiteitsfunctie “\lambda x.x” schrijf je bijvoorbeeld in Haskell als volgt:

id = \x -> x

Hieronder staat de implementatie van de eerste drie Church getallen in Haskell. Ook is er een functie getNum gedefinieerd die een Church getal omzet naar een Haskell nummer.

zero = \f -> \x -> x
one  = \f -> \x -> f x
two  = \f -> \x -> f (f x)

getNum church = church (\x -> x + 1) 0

Gegeven deze definities schrijf de volgende functies: