विकल्प काफी हेवीवेट होगा - फ़ंक्शन ऑब्जेक्ट में "डिफ़ॉल्ट तर्क मान" को कोड करने के लिए कोड के "थंक्स" को बार-बार निष्पादित किया जाएगा जब फ़ंक्शन को उस तर्क के निर्दिष्ट मूल्य के बिना बुलाया जाता है - और शुरुआती बाध्यकारी (डीफ़ टाइम पर बाध्यकारी) पाने के लिए इसे अधिक कठिन बना देगा, जो अक्सर आप चाहते हैं। उदाहरण के लिए, पाइथन में यह मौजूद है:
def ack(m, n, _memo={}):
key = m, n
if key not in _memo:
if m==0: v = n + 1
elif n==0: v = ack(m-1, 1)
else: v = ack(m-1, ack(m, n-1))
_memo[key] = v
return _memo[key]
... उपरोक्त की तरह एक ज्ञापन कार्य लिखना काफी प्राथमिक कार्य है।इसी तरह:
for i in range(len(buttons)):
buttons[i].onclick(lambda i=i: say('button %s', i))
... सरल i=i
, डिफ़ॉल्ट आर्ग मूल्यों के प्रारंभिक बाध्यकारी (परिभाषा समय) पर भरोसा, जल्दी बाध्यकारी पाने के लिए एक तुच्छता आसान तरीका है। तो, वर्तमान नियम सरल, सीधा है, और आपको वह सब कुछ करने की सुविधा देता है जो आपको समझाने और समझने में बेहद आसान है: यदि आप अभिव्यक्ति के मूल्य के देर से बाध्यकारी चाहते हैं, तो फ़ंक्शन बॉडी में उस अभिव्यक्ति का मूल्यांकन करें; यदि आप प्रारंभिक बाध्यकारी चाहते हैं, तो इसे एक तर्क के डिफ़ॉल्ट मान के रूप में मूल्यांकन करें।
विकल्प, दोनों परिस्थितियों के लिए देर से बाध्यकारी को मजबूर करने के विकल्प, यह लचीलापन प्रदान नहीं करेगा, और आपको उपरोक्त में बाध्यकारी की आवश्यकता होने पर हर बार हुप्स (जैसे आपके कार्य को बंद करने के कारखाने में लपेटना) उदाहरण - अभी तक अधिक भारी वजन बॉयलरप्लेट प्रोग्रामर पर इस hypothetical डिजाइन निर्णय ("अदृश्य" उत्पन्न करने और बार-बार जगहों पर thunks का मूल्यांकन करने के लिए मजबूर)।
दूसरे शब्दों में, "ऐसा होना चाहिए, और अधिमानतः केवल एक, इसे करने का स्पष्ट तरीका [1]": जब आप देर से बाध्यकारी चाहते हैं, तो इसे प्राप्त करने के लिए पहले से ही एक बिल्कुल स्पष्ट तरीका है (क्योंकि सभी कार्य कोड केवल कॉल समय पर निष्पादित किया जाता है, जाहिर है कि का मूल्यांकन किया गया सब कुछ देर से बाध्य है); प्रारंभिक बाध्यकारी उत्पादन डिफ़ॉल्ट डिफेंस मूल्यांकन करने से आपको देर से बाध्यकारी होने के लिए दो स्पष्ट तरीकों और प्रारंभिक बाध्यकारी (एक ऋण!) प्राप्त करने के लिए कोई स्पष्ट तरीका देने के बजाय प्रारंभिक बाध्यकारी (प्लस!) प्राप्त करने का एक स्पष्ट तरीका मिलता है।
[1]: "हालांकि यह तरीका तब तक स्पष्ट नहीं हो सकता जब तक कि आप डच न हों।"
मेरा अनुमान प्रदर्शन होगा। कल्पना करें कि हर बार एक समारोह को बुलाया जाता है यदि इसे दिन में 15 मिलियन बार कहा जाता है। –