Exerciții Laboratorul 3, Exercițiul 5

evals/3 — evaluare pe o listă de valuări

Definiți un predicat evals/3 astfel încât, pentru orice formulă X și orice listă de evaluări Es, avem că pentru orice As, evals(X, Es, As) este adevărat atunci când As este lista rezultatelor evaluării lui X în fiecare dintre elementele lui Es.

?- evals(imp(d, b), [[(a, 1), (b, 0), (d, 1)], [(a, 1), (b, 1), (d, 0)]], As).
As = [0, 1]

Hint: recursie simplă pe lista de evaluări. Cazul recursiv apelează eval/3 pe capul listei.

Te-ai blocat?
editor soluție
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (1 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
evals(imp(d, b), [[(a, 1), (b, 0), (d, 1)], [(a, 1), (b, 1), (d, 0)]], As). așteptat: As = [0,1]