Documente Academic
Documente Profesional
Documente Cultură
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]
3. Scriet, i o funct, ie Haskell care să aibă tipul [a] -> [b] -> [(a, b)]
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.
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ă.