I'm trying to iterate through a given list and put all the positive numbers into Y and all negatives into Z. My code works until I go to add a second element to either Y or Z. If I run the code like so "divide([1,-2],Y,Z)" the code executes with no errors its only if I were to enter "divide([1,-2,3],Y,Z)" it will fail when trying to add 3 to Y.
divide([],[Y],[Z]):- write(Y), write(Z).
divide([H|T],[Y],[Z]):- split(H,Y,Z), divide(T,Y,Z).
split(H,Y,Z):- (H>0 -> append([H],[],Y); append([H],[],Z)).