我正在尝试创建一个获取列表和谓词的谓词。给定列表中满足给定谓词的每个元素都应进入列表 1,否则进入列表 2.
例如:
partition(>(6), [1,7,5,6,3,8], Rs1, Rs2)
这应该导致 Rs1=[1,5,3] 和 Rs2=[7,6,8]
我试过这个:
partition(P, [], [], []).
partition(P, [X|Xs], Rs1, Rs2) :-
call(P,X,T),
((T=true, append(Rs1, X, Rs12))
; (T=false, append(Rs2, X, Rs22))),
partition(P, Xs, Rs12, Rs22).
但由于某种原因,我没有得到想要的结果。为什么?