2010-11-25 11 views
5

में सूचियों की तुलना करना मैं इसे स्वयं करने का कोई तरीका समझ सकता हूं लेकिन मुझे लगता है कि ऐसा करने के लिए एक सरल, शायद अंतर्निहित तरीका है। मैं देखना चाहता हूं कि कोई भी दो सूचियां तत्व साझा करती हैं या नहीं।लिस्प

((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

अच्छा! वही है जो मैं चाहता था। धन्यवाद। –