2014-02-05 6 views

답변

8

이 두 항목이 서로 중복 있는지 여부를 정의하는 함수를 지정하는 키워드 인수 :test를 사용합니다. remove-duplicates을 포함한 대부분의 lisp 함수는 eql을 사용하여 기본적으로 동등성을 테스트합니다. eqlequal보다 훨씬 엄격합니다.

(remove-duplicates '((1 2 3) (1 2 3)) :test #'equal) 

이 값은 '((1 2 3))입니다.

eqlequal의 차이점에 대한 자세한 내용은 this post을 참조하십시오.

+2

"두 번째 선택적 인수"가 아닙니다. 'test'는 키워드 인수입니다. 키워드 인수의 순서는 중요하지 않습니다. 예를 들어'(중복 제거 목록 : 테스트 '동일 함 : 끝점 t)'또는 ((중복 제거 목록 : 끝에서 끝 t : 테스트 '같음)'을 수행 할 수 있으며 결과는 동일합니다. Common Lisp의 선택적 인수는 _position_ 기반이지만 키워드 인수는 없습니다. –

+0

@ JoshuaTaylor 좋은 지적. 편집 중. – ApproachingDarknessFish

2

시도 :

(remove-duplicates '((1 2 3) (1 2 3)) :test #'equal) 
관련 문제