Exerciții Șablon parțial (2026-04-22), Subiectul II a) [2 puncte]

splitListEvenOdd/3 — separă pare și impare

Șablon parțial (2026-04-22), Subiectul II a) [2 puncte] intro Recursivitate pe listeCut (!) și cazuri de bază

Scrieți un predicat splitListEvenOdd/3 care primește ca prim argument o listă și returnează în al doilea argument sublista elementelor pare, respectiv în al treilea argument sublista elementelor impare.

?- splitListEvenOdd([4, 2, 10, 2, 5, 7, 13, 8, 19, 27, 32, 40, 16], EvenList, OddList).
EvenList = [4, 2, 10, 2, 8, 32, 40, 16],
OddList  = [5, 7, 13, 19, 27]

Hint: recursivitate pe [H | T] cu două clauze pentru cazul recursiv — una când H mod 2 =:= 0, una altfel. Cazul de bază: splitListEvenOdd([], [], []).

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)
?
splitListEvenOdd([4,2,10,2,5,7,13,8,19,27,32,40,16], E, O). așteptat: E = [4,2,10,2,8,32,40,16], O = [5,7,13,19,27]
?
splitListEvenOdd([], E, O). așteptat: E = [], O = []
?
splitListEvenOdd([1,3,5], E, O). așteptat: E = [], O = [1,3,5]