2012-04-26 2 views
1

에서 요소의 순서에 따라 목록을 주문 난에 목록이 함수 주문을 할 필요가CLISP : 다른

(SetQ L '(1 j 3 k 4 h 5 n 6 w)) 

목록을 'N'항목에서 원자, 그것은 여부를 확인해야한다 원자가 그 결과

(Defun Order lst) 

(SetQ L2'(w o 5 j 3)) 

표시 될리스트 L에 속하지 않는 경우, 그리스트의 각 원자 I는이를 확인하고자,리스트 L에 지정된 순서에 따라리스트 L에 포함하고이를 차수 :

(Order L2) 

결과가 반환해야합니다 :

+1

"숙제"라고 표시해야합니까? 또한 무엇을 시도 했습니까? – Inaimathi

답변

3

힌트 : 그것이로 사용할 수 있기 때문에

CLISP : Check if two elements are in order one after another in a list

이 기능이 관련된 문제입니다 :

이전,이 질문을 표준 Lisp 함수 sort에 대한 호출에서의 비교 함수.

Lisp 함수 intersection은 하나의 목록에서 다른 목록에 나타나는 요소 만 포함하는 목록을 생성 할 수 있습니다. 이것은 집합 연산이므로 중복을 제거 할 수 있습니다. 또 다른 방법은 remove-if-not을 사용하는 것입니다. 여기서 테스트 술어는 member을 사용하여 "다른 목록의 구성원이 아닌이 목록의 모든 요소를 ​​제거하십시오"라는 개념을 표현하는 람다 함수입니다.

관련 문제