कोई आइटम सूची में है या नहीं, यह जांचने का एक आसान तरीका क्या है?जांचें कि आइटम एक सूची में है (Lisp)
कुछ की तरह
(in item list)
वापस कर सकती है true
अगर item=1
और list=(5 9 1 2)
और false
अगर item=7
कोई आइटम सूची में है या नहीं, यह जांचने का एक आसान तरीका क्या है?जांचें कि आइटम एक सूची में है (Lisp)
कुछ की तरह
(in item list)
वापस कर सकती है true
अगर item=1
और list=(5 9 1 2)
और false
अगर item=7
कॉमन लिस्प
FIND
एक अच्छा विचार नहीं है।
FIND
का उद्देश्य सदस्यता की जांच नहीं करना है, लेकिन एक तत्व खोजने के लिए, जो एक परीक्षण को पूरा करता है (उपरोक्त उदाहरण में परीक्षण फ़ंक्शन सामान्य डिफ़ॉल्ट EQL
) है। FIND
ऐसे तत्व को लौटाता है।
उपयोग MEMBER
:
> (member nil '(nil nil))
(NIL NIL) ; everything non-NIL is true
या POSITION
:
> (numberp (position nil '()))
NIL
आप 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)
उपयोग MEMBER
परीक्षण करने के लिए है कि क्या एक आइटम एक सूची में है:
(member 1 '(5 9 1 2)) ; (1 2)
के विपरीत, यह जांचने में भी सक्षम है कि NIL
सूची में है या नहीं।
देर उत्तर। लेकिन शुरुआती लोगों के लिए, आप तारों के पिछले समाधानों के संयोजन का भी उपयोग कर सकते हैं।
(member "b" '("a" "b" "c") :test #'equal)
परिणाम:
("b" "c")
(शून्य लगता है '(शून्य शून्य)) -> शून्य –
लिस्प वाक्य रचना अतः में प्रकाश डाला सिर्फ भयानक है ... – rvighne