मुझे यह स्वीकार करना होगा कि मैं कार्यात्मक प्रोग्रामिंग के बारे में ज्यादा नहीं जानता। मैंने इसके बारे में यहां और वहां से पढ़ा, और इसलिए पता चला कि कार्यात्मक प्रोग्रामिंग में, एक ही आउटपुट, एक ही इनपुट के लिए, कोई फर्क नहीं पड़ता कि फ़ंक्शन को कितनी बार कहा जाता है। यह बिल्कुल एक गणितीय फ़ंक्शन की तरह है जो इनपुट मापदंडों के समान मूल्य के लिए समान आउटपुट का मूल्यांकन करता है जो फ़ंक्शन अभिव्यक्ति में शामिल होता है।
उदाहरण के लिए, इस पर विचार करें:
f(x,y) = x*x + y; // It is a mathematical function
चाहे आप कितनी भी बार उपयोग करें f(10,4)
, उसका मूल्य हमेशा रहेगा 104
। जैसे, आपने जहां भी लिखा है f(10,4)
, आप इसे 104
पूरे अभिव्यक्ति के मूल्य में बदलाव किए बिना बदल सकते हैं। इस संपत्ति को एक अभिव्यक्ति की संदर्भित पारदर्शिता के रूप में जाना जाता है ।
जैसा कि विकिपीडिया कहता है ( लिंक ),
इसके विपरीत, कार्यात्मक कोड में, एक फ़ंक्शन का आउटपुट मान केवल उन तर्कों पर निर्भर करता है जो फ़ंक्शन के लिए इनपुट होते हैं, इसलिए किसी फ़ंक्शन x के लिए समान मान के साथ दो बार फ़ंक्शन फ़ंक्शन कॉल करने से दोनों बार एक ही परिणाम f (x) उत्पन्न होगा।
क्या फंक्शनल प्रोग्रामिंग में एक टाइम फंक्शन (जो वर्तमान समय लौटाता है ) मौजूद हो सकता है?
यदि हाँ, तो इसका अस्तित्व कैसे हो सकता है? क्या यह कार्यात्मक प्रोग्रामिंग के सिद्धांत का उल्लंघन नहीं करता है? यह विशेष रूप से संदर्भात्मक पारदर्शिता का उल्लंघन करता है जो कार्यात्मक प्रोग्रामिंग की संपत्ति में से एक है (यदि मैं इसे सही ढंग से समझता हूं)।
या यदि नहीं, तो कोई व्यक्ति कार्यात्मक प्रोग्रामिंग में वर्तमान समय को कैसे जान सकता है?