1. Scrieti o functie in Haskell care verifica daca o doua liste contin exact aceleasi elemente (nu neaparat in ordine).

2. Scrieti un predicat in Prolog care verifica daca toate elementele unei liste sunt pozitive.

3. Evaluati, folosind strategiile normala si aplicativa, urmatoarea lambda-expresie $ (\lambda x.(x\;(x\;x))\; (\lambda z.x\;\lambda x.z))$ .

4. Folosind tipul de date Query, definiti o interogare care selecteaza ocupatia pentru toti utilizatorii care au varsta intre 15 si 45 sau au numele formate din cuvinte care incep cu litera Q sau litera F.

5. Definiti tipul de date Sentence, care codifica propozitii dupa urmatoarele reguli:

Scrieti o functie care primeste un String, si intoarce un obiect Sentence. Puteti presupune ca string-ul este format corect.

6. Scrieti un predicat in Prolog care primeste o lista L si construieste lista tuturor rotatiilor listei L. Lista tuturor rotatiilor listei [1,2,3] este 1,2,3],[2,3,1],[3,1,2.