2012-04-26 4 views
1

の要素の順序に応じて、リストを注文私は私がリストを持っている機能の注文をしなければならないCLISP:別の

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

リストを持っている「n」のエントリの原子は、それがいるかどうかを確認しなければなりません原子は、リストLの一部でない場合は、そのリストの各原子がリストLに含まれていると、リストLで指定された順序に従ってそれらを注文され、その結果は

(Defun Order lst) 

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

を表示されます私はこれを確認したいです:

(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を使用して "他のリストのメンバーではないこのリストのすべての要素を削除する"というアイデアを表現するラムダ関数です。

関連する問題