प्रश्न: प्रॉपर्टी लिस्ट में किसी फंक्शन को मैप करने के लिए मुहावरेदार तरीका क्या है?
विभिन्न मैपिंग फ़ंक्शंस ( mapcar
और परिवार) एक अनुक्रम को एक सूची में मैप करते हैं जैसे कि एक सूची। प्रॉपर्टी लिस्ट से निपटने के दौरान कोई भी इन कार्यों का उपयोग कैसे करता है , अर्थात, जब सूची में निहित गुणों में से प्रत्येक (जो पहले एक से शुरू होने वाला हर दूसरा तत्व होगा) को मैप करने की कोशिश कर रहा है? यह मुझे लगता है कि मानचित्रण फ़ंक्शन को व्यक्तिगत तत्वों के बजाय तत्वों के जोड़े में सूची तक पहुंचने की आवश्यकता होगी।
एक खिलौना उदाहरण के रूप में, कोई संपत्ति की सूची कैसे लेगा और संपत्ति के सभी मूल्यों को इकट्ठा करेगा? यदि यह एक संघ सूची थी तो इसके बजाय यह बहुत आसान होगा:
(mapcar #'cadr '((:prop1 a) (:prop2 b) (:prop3 c))) ;=> (a b c)
मुझे यकीन है कि यह एक लूप के साथ किया जा सकता है, लेकिन यह थोड़ा श्रमसाध्य लगता है और मैं सोच रहा हूं कि क्या यह करने के लिए अधिक मुहावरेदार तरीका है।
mapcar
मुट्ठी भर उदाहरण है) करता है या आप संपत्ति प्रतीक और संपत्ति मूल्य के जोड़े पर नक्शा करना चाहते हैं। उत्तरार्द्ध अधिक सामान्य है (अधिक सामान्यतः उपयोगी), मैं अनुमान लगाऊंगा।