Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
exam [2020/09/03 10:05] pdmatei |
exam [2020/09/04 10:22] (current) pdmatei |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | 1. Scrieti o functie in Haskell care primeste o functie $math[f], un numar natural $math[k] si o lista de intregi $math[l], si intoarce o lista cu acele elemente $math[x] din $math[l] care au proprietatea ca $math[f(x+1) = f(x-1)]. | + | 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 o lista este sortata. | + | 2. Scrieti un predicat in Prolog care verifica daca **toate** elementele unei liste sunt pozitive. |
- | 3. Dati un exemplu de lambda expresie in care o aparitie a unei variabile este legata, dar variabila respectiva este libera. | + | 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'' descris in tema definiti un query care selecteaza varsta si user_id-ul pentru toti utilizatorii care au ocupatia de tehnician sau scriitor, si care au varste egale cu 30 sau 40. | + | 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. Definiți tipul de date ''RList'' al listelor polimorfice ce pot conține elemente simple sau alte liste de tip ''RList''. Scrieți o funcție de flattening care transformă o astfel de listă într-o listă normală Haskell. | + | 5. Definiti tipul de date ''Sentence'', care codifica propozitii dupa urmatoarele reguli: |
+ | * o propozitie este formata dintr-un **subiect** si un **obiect** | ||
+ | * un subiect este **un nume propriu** format din unul, doua sau trei string-uri care incep cu majuscula. | ||
+ | * un obiect este un **predicat** (String) urmat de unul sau mai multe adjective (String-uri). | ||
- | 6. Scrieti un predicat care primeste o lista ''L'' si construieste o lista perechi $math[a,b \in L] cu proprietatea ca suma celor doua elemente este mai mica sau egala cu lungimea listei. | + | 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]]''. | ||