Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 ​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 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 ​lista perechi $math[a,b \in Lcu 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]]''​.