Sunteți pe pagina 1din 2

PP - Examen Numele s, i grupa:

07-Sep-2019
Timp: 60 de minute

1. Scriet, i o funct, ie ı̂n Haskell care primes, te o listă de liste s, i ı̂ntoarce o listă ce cont, ine
elementele tuturor listelor.
Exemplu: f [[1], [4, 8, 7], [2, 2]] = [1, 4, 8, 7, 2, 2]

2. Ce tip are expresia map (map (== 3))?

3. Scriet, i o funct, ie Haskell care să aibă tipul [a] -> [b] -> [(a, b)]

4. Folosind strategia de evaluare normală, ilustrat, i fiecare pas de evaluare a expresiei:


(λx.(λy.z x) (λx.x t))

5. Ce tip are expresia Haskell: (\x y -> (head x) y)?

6. Scriet, i definit, ia unui tip de date ı̂n Haskell care modelează un arbore binar polimorfic ı̂n
care doar frunzele cont, in valori.

7. Scriet, i un predicat ı̂n Prolog care găses, te elementul minim dintr-o listă nevidă de ı̂ntregi.
PP - Examen 07-Sep-2019

8. Scriet, i un predicat ı̂n Prolog care oglindes, te pe verticală un arbore (i.e. pentru fiecare
nod, copilul stâng devine cel drept s, i vice-versa). Aleget, i o reprezentare potrivită pentru
arbori.

9. Fie următorea bază de cunos, tiint, e ı̂n Prolog:


f (X) :− ! , g (X) , h (X ) .
f (1).
g(2).
g(3).
h(2).
h(3).

De câte ori este satisfăcută interogarea f(Y) s, i cu ce valori unifică Y?

Problema
(0.5p) Definit, i, ı̂n Haskell un tip de date care modelează arbori polimorfici ı̂n care fiecare
nod are o valoare asociată s, i un număr arbitrar de copii (un nod frunză are 0 copii).
(1p) Definit, i funct, iile height s, i size care ı̂ntorc ı̂nălt, imea arborelui, respectiv numărul
de noduri.
(1.5p) Implementat, i o funct, ie care primes, te un arbore s, i ı̂ntoarce o listă cu toate ele-
mentele. Ordinea parcurgerii rămâne la latitudinea voastră.

S-ar putea să vă placă și