자르지 않고 목록을 지우고 싶습니다. 나는 시도했다 :프롤로그 지우기 컷을 사용하지 않고 긍정적 인 요소 목록
filter([],[]).
filter([H|T],[H|S]) :-
H<0,
filter(T,S).
filter([H|T],S) :-
H>=0,
filter(T,S).
그러나 그것은 작동하지 않는다. 경우 - 당시 다른 것은 프롤로그에 구축합니다 때로는 "는있는 것으로 설명되어 있기 때문에
filter([ ],[ ]).
filter([H|T],X) :-
(H > 0 -> X = Y ; X = [H|Y]),
filter(T,Y).
:
이?- filter([1,0,-6,7,-1],L).
L = [-6,-1]; %false
no
L=[0,-6,-1] %true
귀하의 술어가 무엇을해야하는지 명확하게 설명하십시오. – Haile