This is an old revision of the document!
Sample Exam
1. (1p) 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.
2. (1p) 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.
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 un TDA Set
care codifica multimi via functii caracteristice. Implementati reuniunea si intersectia. Implementati folosind foldr
o functie avand signatura [Set] → Set
care primeste o lista de seturi si intoarce reuniunea acestora.
6. (2p) Definiti un predicat csp(X,Y,Z,G,Dom,R)
unde X,Y,Z
sunt variabile neinstantiate iar G este un scop ce contine respectivele variabile. Dom
este domeniul de valori pentru fiecare variabila, iar R
va fi legat la lista avand elementele $ (x,y,z) \in Dom\times Dom \times Dom$ cu proprietatea ca $ x,y,z$ fac G
adevarat.