IO
का आपका दृश्य अच्छा है, लेकिन मैं इस लाइन
मुख्य कॉल वापस एक "आईओ गणना"
सोचने के लिए के बारे में हास्केल वह यह है कि सबसे अच्छा तरीका है पाने के लिए के साथ एक समस्या है कार्य कुछ भी नहीं करते हैं। इसके बजाय, आप घोषणा करते हैं कि क्या मानते हैं। एक कार्यक्रम में IO
मान का विवरण होता है जिसे main
कहा जाता है। एकमात्र भावना जिस पर यह "मुख्य कहता है" यह है कि main
की घोषणा कमजोर हेड सामान्य फॉर्म (या कुछ समान) तक कम हो गई है।
IO
मनमाने ढंग से दुष्प्रभाव-पूर्ण गणना का प्रकार है।हास्केल का शुद्ध सबसेट मूल्यों का एक पूरी तरह से घोषणात्मक वर्णन है, जो अनिश्चित वर्णनों की अनुमति देता है। सेट सिद्धांत के रूप में गणितीय भाषा के रूप में हास्केल के बारे में सोचें। सेट सिद्धांत में वक्तव्य कुछ भी नहीं करते हैं, लेकिन उनमें जटिल कंप्यूटेशंस शामिल हो सकते हैं जैसे "सबसे छोटा सेट जिसमें अर्कर्मन_फंक्शन (30)" शामिल है। वे "एस = उन सभी सेटों के सेट भी शामिल कर सकते हैं जिनमें स्वयं शामिल नहीं है"
@amindfv आधा दाएं है: main
"शुद्ध कार्य" नहीं है। यह बिल्कुल एक समारोह नहीं है। यह एक मूल्य है, शुद्ध कमी द्वारा परिभाषित, एन्कोडिंग अस्पष्ट गणना।
स्रोत
2012-02-24 00:12:14
यह वास्तव में एक बहुत अच्छी व्याख्या है। लेकिन, हास्केल में, मुख्य कार्य नहीं है, केवल एक मान है। (फ्रीज, ओटीओएच में, यह एक फ़ंक्शन है, क्योंकि इसे पास किए गए कमांड लाइन तर्कों की सूची मिलती है) – Ingo
यह काफी काम नहीं करता है, क्योंकि गणना के परिणाम भविष्य की गणनाओं को प्रभावित कर सकते हैं (उदा। 'GetLine')। – ehird
@ehird हां यह करता है। '>> =' आईओ मूल्यों का निर्माण करने का एक तरीका है। हार्ड पार्ट्स आते हैं जैसे अपवाद –