Exerciții Laboratorul 2, Exercițiul 10

concat_lists/3 — concatenare manuală

Laboratorul 2, Exercițiul 10 intro Recursivitate pe liste

Să se definească un predicat concat_lists/3 care să returneze în al treilea argument concatenarea listelor din primele două argumente.

?- concat_lists([1, 2, 3], [d, e, f, g], X).
X = [1, 2, 3, d, e, f, g]

Notă: e reimplementarea lui append/3 din biblioteca standard. Scrierea ei manuală e un exercițiu clasic de recursivitate.

Hint: cazul de bază — lista stângă e vidă, rezultatul este lista dreaptă. Cazul recursiv — mută capul listei stângi la începutul rezultatului.

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)
?
concat_lists([1, 2, 3], [d, e, f, g], X). așteptat: X = [1,2,3,d,e,f,g]
?
concat_lists([], [a, b], X). așteptat: X = [a,b]
?
concat_lists([a, b], [], X). așteptat: X = [a,b]