Ćwiczenia na listy z elementami procedur wyższych rzędów:
-
Napisz procedurę
exists
, która dla danego predykatu i listy sprawdzi, czy na liście jest element spełniający predykat.
Wykorzystaj wyjątki tak, aby nie przeglądać listy, gdy to już nie jest potrzebne.
-
Napisz procedurę negującą predykat
non: (α → bool) → (α → bool)
.
Za pomocą tej procedury oraz procedury exists
zdefiniuj procedurę forall
,
która sprawdza, czy dany predykat jest spełniony przez wszystkie elementy danej listy.