trans_a_b/2 — translatează a-uri în b-uri
Scrieți un predicat trans_a_b/2 care translatează o listă de a-uri într-o listă de b-uri. Predicatul trebuie să fie adevărat dacă primul argument este o listă de a-uri iar al doilea este o listă de b-uri de aceeași lungime.
?- trans_a_b([a, a, a], L).
L = [b, b, b]
?- trans_a_b([a, a, a], [b]).
false
Hint: recursia merge pe ambele liste simultan — capul unei e
a, capul celeilalte eb.
Te-ai blocat?
editor
soluție
trans_a_b([a], [b]) :- !.
trans_a_b([a | T], [b | TR]) :-
trans_a_b(T, TR).
?-
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)
?
trans_a_b([a, a, a], L).
așteptat: L = [b,b,b]
?
trans_a_b([a, a, a], [b]).
așteptat: false
?
trans_a_b([a], L).
așteptat: L = [b]