Edit this page Backlinks This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Examen restanta 27 mai ====== 1. Scrieti o functie care primeste o lista de ''String''-uri si interschimba primul caracter cu al patrulea. Exemplu: <code haskell> repl ["Matei", "Mihai", "George"] = ["eatMi", "aihMi", "reoGge"] </code> 2. Scrieti un predicat care primeste o lista de liste imbricate, si construieste o lista //ne-imbricata// cu aceleasi elemente. Exemplu: <code Prolog> ?- flat([[a,b], [c], [[[d]]], e],R). R = [a,b,c,d,e]. </code> 3. Dati un exemplu de lambda expresie **reductibila**, care produce **aceeasi** secventa de reduceri, atunci cand este evaluata prin strategia normala si prin cea aplicativa. 4. Scrieti o functie in Haskell care primeste o matrice ''m'' si un intreg ''i'' si intoarce coloana ''i'' din matrice, sub forma unei liste. 5. Fie urmatorul cod in Haskell care codifica formule boolene: <code haskell> data CNF = Var Bool | And CNF CNF | Or CNF CNF | Not CNF eval (Var x) = x eval (And f f') = (eval f) && (eval f') eval (Or f f') = (eval f) || (eval f') eval (Not f) = not (eval f) </code> Modificati codul de mai sus (si implementarea lui ''eval'') astfel incat arbori precum: <code> And / \ And True / \ False True </code> sa poata fi reprezentati folosind un singur nod cu mai multi copii: <code> And / | \ False True True </code> 6. Scrieti un predicat ''p(X,K,Y)'' care construieste toate submultimile de dimensiune ''K'' formate cu elemente din ''X''.