Vaje#
Naloga 1#
Izpeljite in rešite enačbe za izpeljavo tipov naslednjih programov:
|- (fun x -> x * x) 14
f : α, v : bool |- if f v then 1 else 0
g : bool -> α |- (fun f -> f (g true)) (fun x -> x + 2)
Preverite, ali vrstni red enačb vpliva na rezultat. Ugotovite kje se pojavi problem pri določanju tipa funkcije fun f -> f f
.
Naloga 2#
Algoritem za izpeljavo tipov dopolnite za:
rekurzijo
pare
vsote
sezname
Naloga 3#
Izpeljite tip funkcije map
. Napišite še kakšen program, ki uporablja konstrukte iz naloge 2 in mu določite tip.