में फ़िल्टर फ़ंक्शन क्या Emacs Lisp में उच्च-आदेश फ़ंक्शन filter
के बराबर है? पायथन या जावास्क्रिप्ट से फ़ंक्शन की तरह।Elisp
(filter-equivalent (lambda (n) (= (% n 2) 0)) '(1 2 3 4 5 6 7 8))
==> (2 4 6 8)
में फ़िल्टर फ़ंक्शन क्या Emacs Lisp में उच्च-आदेश फ़ंक्शन filter
के बराबर है? पायथन या जावास्क्रिप्ट से फ़ंक्शन की तरह।Elisp
(filter-equivalent (lambda (n) (= (% n 2) 0)) '(1 2 3 4 5 6 7 8))
==> (2 4 6 8)
यह cl-remove-if-not
है। एक मुट्ठी भर, लेकिन यह काम करता है।
थोड़ा विस्तार से बता दें आप
(require 'cl-lib)
जरूरत है इस समारोह के लिए। इसके लिए एक उपनाम, remove-if-not
कहा जाता रहा, इसका इस्तेमाल करने के बाद से यह है कि मैं cl
से remove-if-not
उपयोग कर रहा हूँ लग सकता है नहीं पसंद करते हैं, लेकिन ।
सी ++, में using namespace std
नहीं कर रहे हैं, लेकिन प्रत्येक बार std::cout
कहकर उपसर्ग शामिल करने के लिए यह एक अच्छा अभ्यास है।
Emacs 23 में, सीएल संगतता पैकेज में 'निकालें- if' और' निकालें-if-not' नहीं लगता है। – Vatine
@Vatine Emacs 24 'हटाने-if' और' हटाने-अगर-not' भी, आप इसे जवाब के रूप में पोस्ट करना चाहिए, क्योंकि उन में बनाया जाता है – jcubic
@Vatine, @jbubic:। 'हटाने-अगर-not' Emacs में 23 इसकी सीएल संगतता सुविधाओं का हिस्सा है, इसे 'cl-seq.el' में परिभाषित किया गया है। यह कम से कम मेरे अनुभव में, 'कुछ भी' की आवश्यकता के बिना हमेशा उपलब्ध है। शायद पुराने Emacs संस्करणों में, 'cl-seq.el' को डिफ़ॉल्ट कॉन्फ़िगरेशन द्वारा लोड नहीं किया गया था? –
संभव डुप्लिकेट http://stackoverflow.com/questions/2234860/lisp-filter-out-results-from-list-not-matching-predicate) –