मैं एक हास्केल ट्यूटोरियल पढ़ रहा था (आपको एक हास्केल सीखें) जिसमें लेखक ने कहा था कि आलस्यता पारदर्शी पारदर्शिता के साथ अच्छी तरह से चलती है। अधिक पढ़ने और कुछ खोज करने के बाद, मुझे अभी भी समझ में नहीं आता क्यों। ध्यान दें कि मैं समझता हूं कि रेफरेंसियल पारदर्शिता और आलस्य के बारे में क्या बढ़िया है, लेकिन यह एक साथ है जो मुझे परेशान कर रहा है।आभासी पारदर्शिता के साथ आलस्य क्यों अच्छी तरह से जाती है?
क्या दोनों के संयोजन का कोई विशेष लाभ है?
या शायद लेखक सिर्फ यह कहना चाहते थे कि वे दोनों अच्छे हैं और अस्पष्ट रूप से व्यक्त किए गए हैं?
"राज्य केवल तीसरी पंक्ति में जरूरी है"। यह सख्ती से सच नहीं है। दूसरी लाइन चलाने के लिए वर्तमान समय के लिए सिस्टम से पूछने के दुष्प्रभाव की आवश्यकता है; यह 'आईओ ए' प्रकार है, न कि 'ए'। runBenchmarkFunction समान प्रकार का है, और दोनों को चलाने के लिए, आपको उन्हें कुछ फ़ंक्शन के साथ जोड़ना होगा जो सुनिश्चित करता है कि कार्य Haskell में '>>' क्रम में किया जाता है। तो आप वास्तव में 'currentTime >> = \ st -> runBenchmarkFunction >> currentTime >> = \ end -> putStrLn "इसे लिया" ++ ($ end - st) ++ "सेकंड" दिखाएं। स्पष्ट रूप से दूसरी पंक्ति पहले पर निर्भर करती है, इसलिए यह सब काम करता है। – jrockway
@ ज्रॉकवे: मैं यहां एक काल्पनिक भाषा का उपयोग कर रहा हूं जिसे आप आलसी और संदर्भित पारदर्शिता के बीच संबंधों को समझाने के लिए "आलसी जावा" को एक बहुत ही कच्चे और आसान उदाहरण के रूप में कॉल कर सकते हैं। हास्केल में समस्या का समाधान कैसे किया जाता है ** एक ** पूरी तरह से अलग ** प्रश्न है। ध्यान दें कि हास्केल का "मोनड का तरीका" एकमात्र संभावना नहीं है, उदा। इस समस्या से निपटने के लिए स्वच्छ अपने प्रकार के सिस्टम का उपयोग करता है। – Landei
प्रश्न "हैकसेल" टैग किया गया है। लेकिन फिर भी, यदि आपने सही अर्थशास्त्र की कल्पना की है तो आपने जो लिखा है वह पूरी तरह से पारदर्शी रूप से पारदर्शी है। और, यदि आप अन्य अर्थशास्त्र की कल्पना करते हैं, तो यह नहीं है। लेकिन कुंजी शब्द "कल्पना" है। – jrockway