2011-05-26 14 views

उत्तर

38

कॉमन लिस्प

FIND एक अच्छा विचार नहीं है।

FIND का उद्देश्य सदस्यता की जांच नहीं करना है, लेकिन एक तत्व खोजने के लिए, जो एक परीक्षण को पूरा करता है (उपरोक्त उदाहरण में परीक्षण फ़ंक्शन सामान्य डिफ़ॉल्ट EQL) है। FIND ऐसे तत्व को लौटाता है।

उपयोग MEMBER:

> (member nil '(nil nil)) 
(NIL NIL) ; everything non-NIL is true 

या POSITION:

> (numberp (position nil '())) 
NIL 
7

आप find उपयोग कर सकते हैं:

(find 1 '(5 9 1 2)) ; 1 
(find 7 '(5 9 1 2)) ; nil 

:test तर्क का उपयोग पर विचार करें:

+०१२३५१६४१०६ - जो गलत है

> (find nil '(nil nil)) 
NIL 

से ऊपर का मतलब होगा कि NIL सूची (NIL NIL) में नहीं है:

(find "a" '("a" "b") :test #'equal) 
+6

(शून्य लगता है '(शून्य शून्य)) -> शून्य –

+3

लिस्प वाक्य रचना अतः में प्रकाश डाला सिर्फ भयानक है ... – rvighne

17

उपयोग MEMBER परीक्षण करने के लिए है कि क्या एक आइटम एक सूची में है:

(member 1 '(5 9 1 2)) ; (1 2) 

के विपरीत, यह जांचने में भी सक्षम है कि NIL सूची में है या नहीं।

0

देर उत्तर। लेकिन शुरुआती लोगों के लिए, आप तारों के पिछले समाधानों के संयोजन का भी उपयोग कर सकते हैं।

(member "b" '("a" "b" "c") :test #'equal) 

परिणाम:

("b" "c") 
संबंधित मुद्दे