1. (1p) Scrieti o functie care intoarce lista tuturor patratelor perfecte.
2. (1p) Scrieti un program Prolog care genereaza lista tuturor patratelor perfecte.
3. (1p) Scrieti o lambda-expresie reductibila pentru care evaluarea normala si evaluarea aplicativa se comporta diferit.
4. (1p) Scrieti o functie care are signatura [a→a]→[a]→a
.
5. (2p) Scrieti o functie care primeste o lista de perechi nume-grupa-lista de studenti ce apartin grupei respective, si verifica daca exista un student care e membru in doua grupe.
6. (2p) Scrieti un predicat care primeste o lista de perechi nume-grupa-lista de studenti ce apartin grupei respective si care se satisface (si raporteaza) TOTI studentii care sunt membrii in doua grupe.