This is an old revision of the document!
1. Scrieti o functie in Haskell care primeste doua functii $ f$ , $ g$ si un numar natural $ k$ si verifica daca functiile au aceeasi valoare pe intervalul de numere naturale $ 0, \ldots , k$ .
2. Scrieti un predicat in Prolog care primeste un numar k
si o lista L
si implementeaza rotatia cu k
pozitii a listei L
. Rotatia listei [1,2,3,4,5,6,7,8,9]
cu 3
pozitii este [4,5,6,7,8,9,1,2,3]
.
3. Dati un exemplu de lambda-expresie reductibila care poate contine o secventa $ e \Rightarrow e_1 \Rightarrow \ldots \Rightarrow e_n \Rightarrow e$ de reduceri.
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 Prop
, care codifica propozitii dupa urmatoarele reguli:
- o propozitie este formata dintr-un subiect si un predicat
- un subiect poate fi un nume propriu sau un nume propriu urmat de un adjectiv.
- un nume propriu poate fi unul sau mai multe string-uri care incep cu o majuscula.
- un predicat poate fi unul din string-urile:
priveste
,alearga
,mananca
. - un adjectiv poate fi orice string.
Scrieti o functie care primeste un String
, si intoarce un obiect Prop
. Puteti presupune ca string-ul este format corect.
6. Scrieti un predicat in Prolog care primeste o valoare naturala K
si o lista L
si intoarce o lista cu toate sub-listele de dimensiune K
formate cu elemente din L
, si pastrand ordinea acestora din L
.