====== Examen PP ====== **(L/P)** Reduceti urmatoarea lambda-expresie folosind strategiile normala si aplicativa. (λx.(x x) (λx.(x y) λy.y)) **(L/P)** De cate ori se satisface scopul ''?- p(X).'' unde: p(a). q(a). q(b). r(a). r(b). p(X) :- q(X), !, r(X). Justificati. **(E1)** Scrieti o functie in Haskell care primeste o lista de String-uri si **elimina toate** caracterele uppercase din acestea, cu exceptia primelor caractere din sir. (Exemplu ''f ["Matei", "MIHai", "AnA"] = ["Matei", "Mai", "An"]'' **(E2)** Definiti un TDA care sa codifice valori de tip //fractie//, ce sunt formate dintr-un numarator si un numitor **nenul**, precum si o valoare speciala, pentru situatia in care numitorul este nul. Scrieti o functie ce primeste o lista de perechi de intregi, si le converteste la valori de tip fractie. **(E3)** Scrieti o functie care extrage o lista cu toate valorile de pe digonala **secundara** a unei matrici patratice. **Folositi functii de ordin superior**.