定义谓词拆分/ 4,当设置有列表L和整数N,返回两个列表,A和B,其中A包含以L是大于或等于N和B项包含比N.下的项目
示例查询与预期的结果:
?- split([1, 5, 2, 3, 4], 3, A, B).
A = [5, 3, 4],
B = [1, 2].
我的代码:
spit([], 0, [], []).
split([I|Is], N, [A|As], [_B|Bs]):-
I >= N,
A is I,
split(Is, N, As, Bs).
split([I|Is], N, [_A|As], [B|Bs]):-
I < N,
B is I,
split(Is, N, As, Bs).
除了产生A
,并根据需要B
,我的代码只是返回false
。我不知道为什么。
与[此问题]非常相似(http://stackoverflow.com/questions/28250167/prolog-split-list-into-two-lists)。 – lurker