एफपी में प्रमुख नवाचारों में से एक है जिसके परिणामस्वरूप ब्याज का "विस्फोट" होता है।
फिलिप वाडलर ने 1992 के जनवरी में द एस्सेन्स ऑफ़ फंक्शनल प्रोग्रामिंग नामक एक पेपर लिखा था जिसमें आईओडी से निपटने के तरीके के रूप में मठों को कार्यात्मक प्रोग्रामिंग में पेश किया गया था।
शुद्ध, आलसी, कार्यात्मक प्रोग्रामिंग भाषाओं के साथ प्रमुख समस्या आईओ से निपटने में उपयोगिता थी। यह प्रोग्रामिंग में "अवेकवर्ड स्क्वाड" के सदस्य में से एक है, क्योंकि "आलस्य और दुष्प्रभाव, व्यावहारिक दृष्टिकोण से, असंगत हैं। यदि आप एक आलसी भाषा का उपयोग करना चाहते हैं, तो यह एक शुद्ध कार्यात्मक भाषा होना बहुत जरूरी है। यदि आप साइड इफेक्ट्स का उपयोग करना चाहते हैं, तो आपने एक सख्त भाषा का बेहतर उपयोग किया था। " संदर्भ
भिक्षुओं से पहले IO के साथ मुद्दा यह था कि शुद्धता बनाए रखना उन कार्यक्रमों के लिए संभव नहीं था जो वास्तव में किसी भी चीज के लिए उपयोगी थे। IO द्वारा, हम कुछ भी मतलब है कि बदलते राज्य से संबंधित है, जिसमें उपयोगकर्ता या पर्यावरण से इनपुट और आउटपुट प्राप्त करना शामिल है। शुद्ध कार्यात्मक प्रोग्रामिंग में, आलस्य और शुद्धता (साइड इफेक्ट से मुक्त) की अनुमति देने के लिए, सब कुछ अपरिवर्तनीय है।
मठवासी IO की समस्या का समाधान कैसे करते हैं? भिक्षुओं के बारे में बहुत अधिक चर्चा किए बिना, वे मूल रूप से "वर्ल्ड" (रनटाइम वातावरण) को मोनाड के इनपुट के रूप में लेते हैं, और आउटपुट के रूप में एक नया "वर्ल्ड" बनाते हैं, और परिणाम: टाइप करें IO a = World -> (a) विश्व)।
एफपी ने इसलिए अधिक से अधिक मुख्यधारा में प्रवेश किया है, क्योंकि सबसे बड़ी समस्या, आईओ (और अन्य) हल हो गई है। मौजूदा OO भाषाओं में एकीकरण भी हो रहा है, जैसा कि आप जानते हैं। LINQ मोनड्स है, उदाहरण के लिए, के माध्यम से और के माध्यम से।
अधिक जानकारी के लिए, मैं अपने उत्तर में संदर्भित मोनाड्स और कागजात के बारे में पढ़ने की सलाह देता हूं।