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.