Differences

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

Link to this comparison view

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[\Rightarrow e_1 \Rightarrow ​\ldots \Rightarrow e_n \Rightarrow ede 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 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''​.