아래의 술어는 항목 X를 목록 S에 추가합니다. 올바르게 작동합니다.Prolog : 설정할 목록 추가
addToSet(X, S, S) :-
atomic(X),
member(X, S),
!.
addToSet(X, S, [X|S]) :-
atomic(X).
나는 목록에 추가하는 조건으로 연장하는 것을 시도하고있다 [H | T] [H가 | T]를 경우가 완벽하게 작동 S.을 설정합니다 긴 단지 2 항목입니다 ... 즉, T는 경우 원자.
예를 들어, addToSet ([5,6], [1,2,3,4], X). 내가 원하는대로 일한다. 그러나 addToSet ([5,6,7], [1,2,3,4], X). 전혀 작동하지 않습니다. 나는 혼란 스럽다 ... 분명히 내 코드의 마지막 2 ~ 3 줄에 문제가 있지만 분명히 알 수는 없다. 어떤 팁?
감사합니다.
swi-prolog에 대한 관련 관련 조건 자 (프롤로그 시스템에 존재하는 경우)를 확인하는 것이 좋습니다. 다음은 일부 http://www.swi-prolog.org/pldoc/doc_for?object=section%282,%입니다. 27A.12 % 27, swi % 28 % 27/doc/Manual/lists.html % 27 % 29 % 29 –