मैं 48 घंटे (मैं लगभग 85 घंटे तक रहा हूं) में योरसेल्फ स्कीम के माध्यम से काम कर रहा हूं और मैंने वेरिएबल्स और असाइनमेंट को जोड़ने के बारे में भाग लिया है । इस अध्याय में एक बड़ी वैचारिक छलांग है, और मेरी इच्छा है कि यह दो चरणों में किया गया था, बल्कि बीच में एक अच्छा रिफैक्टिंग करने के बाद सीधे अंतिम समाधान पर कूद गया था। वैसे भी ...
मुझे लगता है कि इसी उद्देश्य को पूरा करने लगते हैं विभिन्न वर्गों की संख्या के साथ खो दिया है मिल गया है: State
, ST
, IORef
, और MVar
। पाठ में पहले तीन का उल्लेख किया गया है, जबकि अंतिम में पहले तीन के बारे में ढेर सारे स्टैकऑवरफ्लो प्रश्नों के पसंदीदा उत्तर दिए गए हैं। वे सभी लगातार आक्रमणों के बीच एक राज्य को ले जाने लगते हैं।
इनमें से प्रत्येक क्या है और वे एक दूसरे से कैसे भिन्न हैं?
विशेष रूप से इन वाक्यों का कोई मतलब नहीं है:
इसके बजाय, हम स्टेट थ्रेड्स नामक एक सुविधा का उपयोग करते हैं , जिससे हास्केल हमारे लिए समग्र राज्य का प्रबंधन करता है। इससे हम परिवर्तनशील चर का इलाज कर सकते हैं, जैसा कि हम किसी अन्य प्रोग्रामिंग भाषा में करते हैं, चर प्राप्त करने या सेट करने के लिए फ़ंक्शन का उपयोग करते हैं।
तथा
IORef मॉड्यूल आपको IO मोनड के भीतर स्टेटफुल वैरिएबल का उपयोग करने देता है ।
यह सब लाइन को type ENV = IORef [(String, IORef LispVal)]
भ्रमित करता है - दूसरा क्यों IORef
? अगर मैं type ENV = State [(String, LispVal)]
इसके बजाय लिखूंगा तो क्या टूट जाएगा ?