मैं तुतलाना Emacs में मेरी पहली कोड के कुछ लिखने की कोशिश कर रहा हूँ और मैं निम्नलिखित व्यवहारआदेश तुतलाना
(defun sq (x) (* x x))
(member 9 '(1 2 3 4 (sq 3)))
यह nil
का आकलन करती है, लेकिन मूल्य मैं उम्मीद कर रहा था (9)
था नहीं समझ सकता
अब मुझे लगता है कि * emacs lisp आवेदक-ऑर्डर मूल्यांकन का उपयोग करता है, तो फ़ंक्शन लागू होने से पहले सूची का मूल्यांकन क्यों नहीं किया गया था? क्योंकि (sq 3)
है काम करता है
जब से मैं यह सिर्फ, मैं अंत में इस प्रकार यह काम कर सकता है एक गैर शून्य हालत के परीक्षण के लिए की जरूरत है,
(member 9 (cons (sq 3) '(1 2 3 4)))
जो (9 1 2 3 4)
मेरा प्रश्न का आकलन करती है पहले के उदाहरण के विपरीत एक समारोह (विपक्ष) के लिए "प्रत्यक्ष" तर्क जहां यह तर्क के अंदर एक तत्व था? cons
का उपयोग यहां एक स्वीकार्य कामकाज का उपयोग कर रहा है या वांछित व्यवहार पाने के लिए एक बेहतर/सही तरीका है?
* यह सुनिश्चित करने के लिए कि ऑर्डर मूल्यांकन emacs lisp उपयोगों के बारे में पता नहीं लगा सका, मैंने योजना दुभाषिया में एक ही अभिव्यक्ति की कोशिश की और मुझे एक ही जवाब मिला और एसआईसीपी से मुझे पता चला कि योजना आवेदक आदेश मूल्यांकन का उपयोग करती है। अब मैं वास्तव में वास्तव में उलझन में हूँ!
किसी भी मदद की सराहना की।
धन्यवाद एक बहुत:
वैकल्पिक रूप से, आप
list
समारोह है, जो अपने मापदंडों का मूल्यांकन करता है (जब तक स्पष्ट रूप से उद्धृत) इस्तेमाल कर सकते हैं। यह सहायक था :) – naiquevin@naiquevin, मेरी खुशी। –