Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
exam [2020/09/04 09:33] pdmatei |
exam [2020/09/04 10:22] (current) pdmatei |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | 1. Scrieti o functie in Haskell care primeste doua functii $math[f], $math[g] si un numar natural $math[k] si verifica daca functiile au aceeasi valoare pe intervalul de numere naturale $math[0, \ldots , k]. | + | 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 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]''. | + | 2. Scrieti un predicat in Prolog care verifica daca **toate** elementele unei liste sunt pozitive. |
- | 3. Dati un exemplu de lambda-expresie reductibila care poate contine o secventa $math[e \Rightarrow e_1 \Rightarrow \ldots \Rightarrow e_n \Rightarrow e] de reduceri. | + | 3. Evaluati, folosind strategiile normala si aplicativa, urmatoarea lambda-expresie $math[(\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''. | 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: | + | 5. Definiti tipul de date ''Sentence'', care codifica propozitii dupa urmatoarele reguli: |
- | * o propozitie este formata dintr-un **subiect** si un **predicat** | + | * o propozitie este formata dintr-un **subiect** si un **obiect** |
- | * un subiect poate fi **un nume propriu** sau un nume propriu urmat de un **adjectiv**. | + | * un subiect este **un nume propriu** format din unul, doua sau trei string-uri care incep cu majuscula. |
- | * un nume propriu poate fi unul **sau mai multe** string-uri care incep cu o majuscula. | + | * un obiect este un **predicat** (String) urmat de unul sau mai multe adjective (String-uri). |
- | * 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. | + | 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]]''. | ||
- | 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''. |