2010-11-25 13 views
5

私はこれを自分で行う方法を見つけ出すことができましたが、これを行うための簡単な、おそらく組み込みの方法があると感じています。 2つのリストが要素を共有しているかどうかを確認したい。これらは私が現時点で扱ってる二つのリストです:Lispのリストを比較する

((0 1 2) (3 4 5) (6 7 8) (0 3 6) (1 3 7) (2 4 8) (0 4 8) (2 4 6)) 

((0 1 7) (0 1 6) (0 1 3) (0 3 7) (0 3 6) (0 6 7) (1 3 7) (1 3 6) (1 6 7) (3 6 7)) 

両方のリストが(1 3 7)を含んでいるので、私はTを返すために、リストの比較をしたいと思います。

これを行うには、カップルを設定するだけの方法がありますか?DOLIST

答えて

8

INTERSECTION

(defvar a '((0 1 2) (3 4 5) (6 7 8) (0 3 6) (1 3 7) (2 4 8) (0 4 8) (2 4 6))) 
=> A 
(defvar b '((0 1 7) (0 1 6) (0 1 3) (0 3 7) (0 3 6) (0 6 7) (1 3 7) (1 3 6) (1 6 7) (3 6 7))) 
=> B 
(intersection a b :test 'equal) 
=> ((1 3 7) (0 3 6)) 
+0

ニース!それはまさに私が望んでいたものです。ありがとう。 –

関連する問題