निम्नलिखित Emacs Lisp फ़ंक्शन सूचियों की एक सूची लेता है और एक सूची देता है जिसमें आंतरिक सूचियों की वस्तुओं को एक बड़ी सूची में जोड़ा गया है। यह बहुत सीधी आगे है और मुझे कुछ आश्वस्त है जैसे कि यह पहले से ही मानक फ़ंक्शन लाइब्रेरी का हिस्सा होना चाहिए।बिल्ट-इन Emacs Lisp लाइब्रेरी में इस फ़ंक्शन का नाम?
(defun flatten (LIST)
(if LIST
(append (car LIST) (flatten (cdr LIST)))
nil))
मैं ऐसे फ़ंक्शन की तलाश में हूं जो सूचियों की एक सूची को इसके तर्क के रूप में ले लेगा और फिर सभी आंतरिक सूचियों को जोड़ देगा।
(flatten '((a b) (c d)))
दे देंगे
(a b c d)
किसी को भी इस समारोह में पहले से ही में बनाया गया है कि क्या पता है, और यदि हां, जो नाम के तहत?
धन्यवाद!
आपके उत्तर, बहुत ही सुरुचिपूर्ण परिभाषाओं के लिए बहुत बहुत धन्यवाद। लेकिन वैसे भी, मेरा प्रश्न इस व्यवहार को प्राप्त करने के लिए बहुत कुछ नहीं था, लेकिन क्या एलिस्प पहले से ही ऐसा कार्य प्रदान करता है। यह जिज्ञासा से वास्तव में अधिक है, न कि क्योंकि मुझे एक विशिष्ट समस्या का सामना करना पड़ रहा है जो बहुत जटिल लगता है ... –
उत्तर है, "हां, यह करता है", अर्थात् पहचान समारोह पर मैपकेन। – jrockway
मुझे ऐसा नहीं लगता: मैपकेन दो तर्क (पहचान समारोह और एक सूची) लेता है जबकि संदिग्ध "flatten" केवल एक सूची लेता है। (जब आपको उसकी ज़रूरत होती है तो करी कहां है?) वैसे भी, जैसा कि मैंने पहले कहा था, यह वास्तव में महत्वपूर्ण नहीं है, और उपरोक्त वैटिन के समाधान दोनों महान हैं। –