我一直在尝试在Prolog中创建一个谓词,它将整数列表分成正整数列表和负整数列表.
具有预期结果的示例查询:
?- split([1,-2,3,4,-8],X,Y).
X = [1,3,4],
Y = [-2,-8].
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码:
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.
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚我做错了什么.