प्रश्न: कब, क्या कभी, क्या यह तेज-उद्धरण के लिए उपयोगी है lambda
, और कब, क्या कभी, हमें तेज-उद्धरण नहीं करना चाहिए lambda
?
लोग lambda
तीन तरीकों से उपयोग करते हैं:
- सादा:
(lambda (x) x)
- उद्धृत किया:
'(lambda (x) x)
- तेज उद्धृत किया:
#'(lambda (x) x)
यह SO थ्रेड तीन प्रकारों पर चर्चा करता है, यह SO थ्रेड बताता है कि क्यों नहीं उद्धृत किया जाता है (NB: sharp-quote ) नहीं है lambda
, और यह SO थ्रेड उद्धृत और तीक्ष्ण-उद्धरण के बीच के भेदों पर भी चर्चा करता है।
अब, अनाम कार्यों पर मैनुअल नोड और lambda
ध्यान दें कि lambda
स्व-उद्धरण हैं के लिए docstring :
फॉर्म की एक कॉल
(lambda ARGS DOCSTRING INTERACTIVE BODY)
स्व-उद्धरण है; लैम्ब्डा अभिव्यक्ति का मूल्यांकन करने का परिणाम अभिव्यक्ति ही है। मेमने की अभिव्यक्ति तब एक समारोह के रूप में माना जा सकता है ...
तो, यह प्रतीत होता है कि (lambda (x) x)
और #'(lambda (x) x)
समतुल्य हैं, लेकिन '(lambda (x) x)
सबसे महत्वपूर्ण नहीं है (जब बाइट-संकलन)।
ऐसा लगता है कि शायद ही कभी चाहेगा बोली एक lambda
है, लेकिन यह मेरे लिए स्पष्ट नहीं है जब, अगर कभी, हम चाहिए, या नहीं करना चाहिए, तेज बोली:
- क्या तीक्ष्ण-उद्धृत
lambda
केवल एक शैलीगत विकल्प है, या क्या ऐसी परिस्थितियाँ हैं जिनमें तेज-उद्धरण वास्तव में उपयोगी है? - क्या ऐसी परिस्थितियाँ हैं जिनमें हमें तेज-उद्धरण नहीं देना चाहिए
lambda
, अर्थात ऐसा करने पर कोड का अर्थ बदल जाएगा?