Sari la conținut
EXAMS.RO

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