Paradigme de programare · 2008 · Sesiune
- Profesor
- Cristian Giumale
- Anul examenului
- 2008
- Sesiune
- Sesiune
- Serie
- CA
- Adăugat
- 13 septembrie 2011 de Bogdan Ivanov
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
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