Vaje#
Naloga 1#
Dopolnite lambda račun s celimi števili n
in seštevanjem e1 + e2
.
Dopolnite pravila za leno in neučakano izvajanje velikih in malih korakov. Komentirajte, kje se pojavijo ključne razlike.
Naloga 2#
Izračunajte spodnje izraze v lambda računu. Jasno označite korake izvajanja pri vsakem.
(\y -> (\x -> x + y)) 2 3
(\y -> (\x -> x + x)) 2 3
(\x -> x x) (\x -> x x)
Naloga 3#
Razložite kaj naredijo naslednje funkcije za Churchova števila
\n f z -> f (n f z)
\n f z -> n f (f z)
\m n f z -> m f (n f x)
\m n f z -> m (n f) z
\m n -> n m
Naloga 4#
Uporabite Churchovo kodiranje za predstavitev seznamov kot aplikacije fold
na tem seznamu.