M.Popovici
2015 · Sesiune · 323/324 CB
Sesiune vara
12 iunie 20151 fișier
12 subiecte
2015 · Sesiune · 323/324 CB
Sesiune vara
12 iunie 20151 fișier
2013 · Sesiune · CA+CB+CC
Seria CC nu a facut cu Mihnea, ci cu Andrei Olaru, greseala mea cand am scris toate seriile. + Test grila, care se da la ultimul laborator si valoreaza 1p — răspunsurile corecte sunt (a) la toate întrebările.
10 iunie 20134 fișiere
2012 · Sesiune · 324 CA
Subiecte PP 07 Iunie 2012, 324 CA, din amintiri: Grile: 1. Care din următoarele tipuri e polimorfic: a) data Lista a = Vid ... b) data Nat = Zero | Succ Nat c) data Ceva = Constr | AltConstr 2. (lambda x.(x x) lambda y.(y y)) a) evaluarea normală se termină, ce aplicativă nu b) se evaluează la (x y) (sau ceva asemănător) c) nici evaluarea normală nici cea aplicativă nu se termină 3. (define x 5) (define f (delay (let ((y = 1) (z = x)) (set! x (+ z y))))) (begin (force f) (force f)) ; sau ceva de genul, ideea e că erau 2 force Ce valoare are x la final: a) 5 b) 6 c) 7 4. Haskel, tipuri la ceva de genul: f x y = let (a:_) = x (sau aproximativ) (încă ceva..) in (a:y) Chiar nu mai știu exact cum era, dar era destul de evidentă. a) [a] -> [b] -> [a] b) [a] -> [a] -> [b] c) [a] -> [a] -> [a] 5. (deffacts facts (f 1) (f 2) (f 3)) (defrule r1 (declare (salience 1)) (f ?x) => (assert (f ?x ?x))) (defrule r2 (declare (salience 0)) ?f <- (f $?) => (retract ?f)) De câte ori se execută r2: a) 3 b) 6 c) ciclează 6. Horn, echivalent în Prolog (not g (x)) or (not g(y)) or f(x, y) a) f(x, y) :- g(x), g(y). b) g(x), g(y) :- f(x, y). c) nu este o clauză Horn 7. Expresia: p(x) and q(x) or (not q(x)) or (not p(x)) a) satisfiabilă b) validă c) nesatisfiabilă (sau un cuvânt asemănător) 8. (define f (lambda (x) (lambda (y z) (x y z)))) Care dintre următoarele este o aplicație corectă: a) ceva greșit b) ceva greșit c) ((f map) (lambda (x) x) \'(1, 2, 3)) Nici la asta nu mai știu exact variantele. Scuze. 9. (define f (lambda (x) (let* ((f 5) (g (+f 4) și alte multe chestii unrelated) x)))) Ce returnează (f \'(1 2 3))? a) \'(3 2 1) b) \'(1 2 3) c) \'(3 1 2) 10. fold + 10 [1, 2, 3, 4, 5] a) 25 b) 35 c) 15 Probleme: 1. Funcție în Scheme cu tail recursion care calculează suma primelor n numere. 2. CLIPS, se dau două seturi reprezentate ca: (set-one 1 7 3 alte_numere) (set-two 8 3 1 3 alte_numere) (alte_numere chiar înseamnă alte numere, un număr finit de numere, care erau precizate) Să se scrie un program CLIPS care calculează intersecția celor 2 mulțimi. Rezultatul putea fi reprezentat oricum vroiam, doar să povestim cum am ales să reprezentăm. 3. Se dă: (define c (lambda () (lambda (x) (force x)))) Folosind doar c (și paranteze) scrieți ceva care să forțeze (delay 3). 4. X = [H|T], H is 1, Y = [1, 2, 3], X = Y Se poate satisface? Dacă da, care sunt legările, dacă nu de ce? 5. Se dă tipul: data Lista a = Vid | Cons a (Lista a) Scrieți o funcție care returnează numărul de elem din listă și precizați tipul funcției. Rezolvări, deasemenea aproximative: Grile - am păstrat ordinea în care le-am pus, în subiectul de examen erau în total altă ordine. 1. a) 2. c) 3. b) 4. c) 5. b) 6. a) 7. b) 8. c) 9. b) 10. a) Probleme (nu am testat, posibile erori): 1. (define SumN (lambda (n acc) (if (eq? n 0) acc (SumN (- n 1) (+ acc n))))) 2. (defrule r1 (set-one $? ?x $?) (set-two $? ?x $?) => (assert (intersect ?x))) La final o să fie multe fapte (intersect ?x), și totalitatea lor reprezintă intersecția. 3. ((c) (delay 3)) 4. Da, T = [2, 3], X = [1, 2, 3] 5. count Vid = 0 count Cons el li = 1 + (count li) count:: Lista a -> Integer
7 iunie 2012
2012 · Sesiune · 322+323+324 CB
01.06.2012
3 iunie 20121 fișier, 1 imagine
2011 · Sesiune · 323 CA
Fri Jun 3, 2011 2:09 pm 1 Ce val are f : (define f (call/cc (lambda(x) x))) (((f 'f) f) 1) a) 1 b)Continuare f c)f 2 Cum este propozitia oricare x, y (x=>y) sau non y a) Valida b) Satisfiabila c)Falsa 3 Cum este forma naturala a lambda expresiei: ((lx.(x x) lx.(x x)) lx.y)? a) lx.y b)Este ireductibila c)y 4 Ce tip are expresia Haskell ([],[])? 5. Ce este o inchidere functionala? 6. Ce valoare are expresia Haskell let { s=1:s ; (x:_)=s} in x? a)1 b)expresia bucleaza c)Lista [1,1,...] 7. Ce ramane dupa (deffacts facts (f 0)) (defrule r ?f<- (f?x) => assert (f (+ 1 ?x)) 8 Markov 11&1111 M({1,m,M,&}) 1: 1&1-> & 2: &1-> m& 3 1&->&M 4: &->. a)MM b)mm c)m1 9. expresia (force(delay(delay e))) este echivalenta cu : a) (delay (delay e)) b) (delay e) c) e 10) In Scheme evaluarea este: a)latenta b) in ordine normala c)aplicativa Problemele au fost cam asa : 1. Functie in Scheme care transforma o functie din forma curry in forma uncurry (de fapt mai trebuia folosita inca o functie intermediara - cu un singur paramteru - nu mai stiu exact cerinta, dar ideea aia era). 2. In Haskell, cum codifici: exista x in lista l a.i. p(x), unde p este un predicat 3. CLIPS - ai mai multe fapte de forma (f v1 v2 ... vn) Cum faci sa elimini toate faptele cu i>1 (i, adik indicele din vi) 4. Prolog - ceva de genul om => generos si prieten => generos. Cum codifici (2 randuri :) ) 5. O chestie ceva mai complexa in Scheme, de definit p a.i. p = (force (car p)) & p = (force (cdr p)).
12 septembrie 2011
2010 · Sesiune · 322 CC
!! Vezi attach !! In grila colegul meu are vreo patru greseli: 1.(eq? ... ) intoarce #f, pentru ca eq? nu stie sa compare doua liste; 2.nu am inteles nici acum de ce nu intoarce o continuare, ci 7; 5.raspunsul este c), se va executa mereu regula 1; 8.c). La 13 - > folosesti faptul initial: il retragi si apoi faci assert pe el.
12 septembrie 20111 fișier, 1 imagine
2008 · Sesiune · CA/CC
Inca cateva variante de subiect ceva mai vechi
21 septembrie 20113 fișiere, 3 imagini
2008 · Sesiune · CA
1. Clauza horn ? a) a ^ b => c b) c=> a ^ b c) a v b v c 2. Ce forma are functia (lambda (f x) (f x)) ? a) curry b) uncurry c) ambele, deorece functia este binara 3. Cum e verificarea tipurilor in Scheme? a) nu exista b) statica c) latenta 4. // ce s-a mai dat Fie definitia Scheme: (define c (lambda f) (lambda (x)) (f (f x) ) Sa notam cu f ^ i compunerea functiei f cu ea insasi de i ori . Ce calculeaza expresia ((c c) f) , unde f este o functie unara? a) f ^ 8 b) f ^ 6 c) f ^ 4 5. (deffacts (f 0)) // sau (deffacts startup (f 0)) (defrule r (f 0) => (assert (f 0)) ) ce facts-uri sunt in baza de fapte dupa terminarea programului? a) programul ruleaza la infinit b) (initial-fact) (f 0) c) (initial-fact) 6. Se da regula: (defrule f (f $? ?x &:(?x > 1) $? ?y 2) => ...) Cate inregistrari de activare genereaza faptul (f 2 2 1 2) ? a) 1 b) 2 c) 3 7. Ce se afiseaza ((let ((x ( lambda (x) x))) x) 'x) ? a) eroare de sintaxa b) nu se termina evaluarea expresiei c) x 8. functia urmatoare transforma din forma curry in uncurry: lambda (f ) (lambda (x) (lambda (y) (ceva)) ceva trebuie sa fie: a) f(x,y) b) ((f x) y) c) (f x y) 9. Cate solutii/combinatii se obtin pentru predicatul amic_bun(X Y) amic_bun(X,Y):-amic(X,Y),onest(Y) amic(Ion,X) amic(Florin,Ion) onest(Florin) onest(Mihai) a) 2 b) 3 c) 4 10. Fie expresia: (define f (letrec ((x 1) (d (delay (set! x (+ x 1))))) (cons (lambda() x) (lambda() (force d) x)))) In urma evaluarii secventei ((car f)) ((cdr f)) ((car f)) ((cdr f)) se obtine: a) 0 1 1 1 b) 1 2 2 2 c) 1 2 2 3 11. Cate reduceri distincte se aplica lambda expresiei (lx.y.( lx. (x x) lx.(x x) )) pentru e ajunge la forma normala? a) o infinitate b) 0 c) 2 12. Care este signatura functiei in Haskel? x -> "a": (x:y) a) a->[a]->[a] b) a->[String]->[a] c) String->[String]->[String] 13. Fie expresia (define f (lambda() '(lambda (x) x))). Ce obtinem evaluand (f): a) eroare de sintaxa b) inchiderea functionala asociata functiei identitate c) (lambda (x) x) 14. Fie functia Haskell f x = x : (f x). Evaluarea lui (f 0) a) nu se termina b) se termina c) functia genereaza o eroare la verificarea tipurilor
13 septembrie 2011
2008 · Sesiune · CA
Subiect preluat de pe http://andrei.clubcisco.ro
12 septembrie 20111 fișier
2007 · Sesiune · CA
Vezi attach!
12 septembrie 20111 fișier, 1 imagine
2006 · Sesiune · CA
Toate subiectele atasate aici sunt ceva mai vechi. Incep cu 2006 si scad :)
13 septembrie 20117 fișiere
2006 · Sesiune · CA
Subiecte PF (20.06.2006) 1. c= \x.\f.(f ((x x) f)). sa se arate ca functionala Q = (c c) este un combinator de punct fix 2. Sa se rescrie in Haskell, in forma terminal recursiva, functia times, folosind programarea cu transfer de continuari. Functia obtinuta are apelul (times' x y) times 0 _ = 0 times (x+1) y = y + (times x y) 3. Dr. Who doreste sa implementeze in Scheme predicatul forced? :Promisiune -> Boolean pentru a testa daca o promisiune a fost fortata. In acest scop, operatorii delayu si force ar trebui modificati. Din comoditate, Dr. Who accepta sa foloseasca doi noi operatori, anume delay~ si force~ scrisi in cateva linii pe baza lui delay si force. Faceti ce isi propune Dr.Who : implementati, cu efot, minim, delay~ si force~ si forced?. 4.Ce valoare reintoarce aplicatia (fact 5) din programul de mai jos? (define x! (lambda (x) (if (= x 1) 1 (* x (x! (-n 1)))))) (define fact x!) (define x! (lambda (x) (+1 x))) (fact 5) 5. Fie functia Haskell g x = root where root = x:root a) sa se deseneze lista g 1 b) ce rezultat reintoarce testul g 1 == g 1 ? 6. Care este valoarea variabilei x dupa evaluarea expresiilor Scheme de mai jos (define y 0) (define x (+1 (call/cc (lambda (c) (set! y c) 2)) 3)) (y (y x)) 7. Sa se rescrie functia fp_map in Haskell, folosind exclisiv 'list comprehension' (define fp_map (lambda (f p a b) (map f (filter (lambda (x) (p x b)) a)))) 8. Sa se scrie signatura completa (inclusiv contextul) a functiei Haskell f x y (x' z) = if x == [] then y else if (head x) > x' then z else x 9. Ce este o corutina? (nu definitia din curs ) 10. Un program Scheme utilizeaza liste unidirectionale imbricate , ex (1 (2 (3) 5) 6). sa prsupunem ca, in haskell se alege urmatoarea reprezentarea a listelor imbricate cu elemente de acelasi tip: data GList a =Atom a| List [GList a] a) sa se reprezinte, folosind GList a, lista scheme data ca exeplu b) ceva cu clasa show (mult de scris :( ) c) ceva legat de b
12 septembrie 2011