I've been trying to create a predicate in Prolog which splits a list of integers into a list of positive integers and into a list of negative integers.
Sample query with expected result:
?- split([1,-2,3,4,-8],X,Y).
X = [1,3,4],
Y = [-2,-8].
This is the code I got so far:
split([], [], []).
split([Head|Tail], List1, List2) :- split(Tail, [Head|List1], List2), Head>=0.
split([Head|Tail], List1, List2) :- split(Tail, List1, [Head|List2]), Head<0.
I can't seem to figure out what I'm doing wrong.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…