इस समारोह लें:एलआईएसपी डिफ्यून को इसके पैरामीटर तर्क से पहले उद्धरण की आवश्यकता क्यों नहीं है?
(defun sum-greater (x y z)
(> (+ x y) z))
यह मेरी समझ है कि लिस्प में एक सूची में पहले तत्व हमेशा एक समारोह के बाद के परमाणुओं/सूचियों पर करने का प्रतिनिधित्व करता है। तो y
और z
पर किए जाने वाले फ़ंक्शन के रूप में (x y z)
में LISP क्यों x
का इलाज नहीं करता है। स्पष्ट रूप से यह वांछनीय व्यवहार नहीं होगा, लेकिन यह अपेक्षित व्यवहार होगा।
संभावित रूप से defun
परिभाषित करने वाला फ़ंक्शन किसी सूची के मानक LISP मूल्यांकन को ओवरराइड करता है? यदि हां, तो क्या आप इसका विस्तार कर सकते हैं?
धन्यवाद
यह अपने सभी अन्य तर्कों पर भी मूल्यांकन में देरी करता है: आप निश्चित रूप से 'defun' रूप का मूल्यांकन करते समय' (> ...) 'मूल्यांकन नहीं करना चाहते हैं! – Ken
अच्छा बिंदु, मुझे पता होना चाहिए कि डिफुन अकेले से नियमित कार्य से अधिक था .. –