elements_of/2 — apartenență la listă
Scrieți un predicat elements_of/2 care verifică dacă primul argument este element al listei din cel de-al doilea argument.
Exemple de apel și rezultatele așteptate:
?- elements_of(1, [1,2,3]).
true
?- elements_of(b, [a,b,c]).
true
?- elements_of(d, [a,b,c]).
false
?- elements_of(X, [a,b,c]).
X = a ;
X = b ;
X = c ;
false
Hint: folosește pattern-ul
[H | T]pentru a descompune lista. Cazul de bază:Heste chiar elementul căutat. Cazul recursiv: caută înT.
Te-ai blocat?
editor
soluție
elements_of(X, [X | _]) :- !.
elements_of(X, [_ | T]) :-
elements_of(X, T).
?-
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)
?
elements_of(1, [1,2,3]).
așteptat: true
?
elements_of(b, [a,b,c]).
așteptat: true
?
elements_of(d, [a,b,c]).
așteptat: false