2014-12-27 7 views

उत्तर

6

Association lists elisp में सबसे अधिक इस्तेमाल किए जाने वाले सहयोगी कंटेनर हैं। यह केवल ((key . value)) जैसे कुंजी-मूल्य विपक्षी कोशिकाओं की एक सूची है। आवश्यक मूल्य के साथ कुंजी प्राप्त करने के लिए आप फ़ंक्शन का उपयोग किसी कुंजी से संबंधित मान प्राप्त करने के लिए rassoc का उपयोग कर सकते हैं।

एलिस्प अंतर्निहित फ़ंक्शन mapcar के साथ आता है जो मानचित्र करता है, लेकिन AFAIK कोई अच्छी fold सुविधा नहीं है। आप प्रदान की गई लूपिंग सुविधाओं का उपयोग करके इसे अनुकरण कर सकते हैं। हालांकि, बेहतर समाधान cl-lib का उपयोग करना और CommonLisp भूमि में फिसलना है। विशेष रूप से, it suppliescl-mapcar और cl-reduce

+0

प्रधान, मानचित्र से मूल्य प्राप्त करने के लिए, क्या कोई assq (या) assoc का उपयोग कर सकता है? –

+0

आमतौर पर, 'assoc' जो समझ में आता है क्योंकि वह' बराबर 'वाली चाबियों की तुलना करता है। दूसरी तरफ, 'assq'' eq' के साथ तुलना करता है जिसके लिए आवश्यक है कि वे स्मृति में सटीक एक ही वस्तु हों। – Pradhan

7

संघ सूची, (जिसका एल्गोरिथम जटिलता छोटे तालिकाओं के लिए ठीक है, लेकिन बड़े लोगों के लिए नहीं), वहाँ, हैश तालिकाओं हैं आप make-hash-table और puthash साथ निर्माण कर सकते हैं इसके अलावा, या यदि आप तत्काल मूल्यों को पसंद करते हैं, तो आप उन्हें #s(hash-table data a 1 b 2) के रूप में लिख सकते हैं ।