Exerciții Laboratorul 2, Exercițiul 5

all_a/1 și all_symb/2 — listă formată dintr-un singur simbol

Laboratorul 2, Exercițiul 5 intro Recursivitate pe listeCut (!) și cazuri de bază

Definiți un predicat all_a/1 care primește ca argument o listă și care verifică dacă argumentul său este format doar din a-uri. Scrieți și o formă generală, all_symb/2, care să verifice că toate elementele sunt egale cu un simbol dat. Ce tip de egalitate utilizați?

?- all_a([a, a, a, a]).
true

?- all_a([a, A, a, a]).
A = a

Hint: în varianta generală, folosește operatorul = pentru a unifica H cu S — așa merge și când H e variabilă (nu doar când e chiar simbolul respectiv).

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 (3 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
all_a([a, a, a, a]). așteptat: true
?
all_a([a, b, a]). așteptat: false
?
all_symb([x, x, x], x). așteptat: true