आज आपण फंक्शनल प्रोग्रामिंगला स्पर्श करू. अधिक विशेषतः, आम्ही घोषणात्मक आणि अनिवार्य प्रोग्रामिंगमधील फरक पाहू.

प्रथम, त्वरीत अटींवर जाऊया. मग आम्ही या प्रोग्रामिंग शैलींची तुलना करू आणि ते Java मध्ये कसे दिसतात आणि भाषा त्यांच्या आनंदी सहजीवनास समर्थन देते की नाही ते पाहू.

फंक्शनल प्रोग्रामिंग हा एक नमुना आहे जिथे फंक्शन्स हे गणितीय फंक्शन्स म्हणून समजले जातात, प्रक्रियात्मक प्रोग्रामिंगप्रमाणे सबरूटीन म्हणून नव्हे . म्हणजेच, या दोन पॅराडाइम्समध्ये "कार्य" या शब्दाचा वेगळा अर्थ लावला जातो. हे लक्षात ठेवा आणि त्यांना गोंधळात टाकू नका. जावा तुम्हाला गोंधळात पडू देत नाही, कारण सबप्रोग्राम्सना "पद्धती" म्हणून संबोधले जाते, तर फंक्शन्स गणितीय फंक्शन्सचा संदर्भ घेतात (देखील: lambda फंक्शन्स किंवा पद्धत संदर्भ).

व्यवहारात, प्रक्रियात्मक प्रोग्रामिंगमध्ये, फंक्शन्स केवळ इनपुट व्हेरिएबल्सवरच अवलंबून नसतात, तर बाह्य घटकांवर देखील अवलंबून असतात (जसे की फंक्शन किंवा सिस्टमच्या स्थितीबाहेरील इतर व्हेरिएबल्स). याचा अर्थ असा की त्याच फंक्शनला समान वितर्कांसह कॉल करणे परंतु भिन्न संदर्भात भिन्न परिणाम देऊ शकतात. फंक्शनल प्रोग्रामिंगमध्ये, जेव्हा फंक्शन समान वितर्कांसह कॉल केले जाते तेव्हा ते नेहमी समान परिणाम देते, कारण फंक्शन्स फक्त इनपुट डेटावर अवलंबून असतात.

फंक्शनल प्रोग्रामिंगचे फायदे

  • सुधारित कोड विश्वसनीयता
  • सोयीस्कर युनिट चाचणी
  • संकलनादरम्यान कोड ऑप्टिमायझेशनच्या संधी
  • एकरूपतेसाठी संधी

फंक्शनल प्रोग्रामिंगचे तोटे

फंक्शनल प्रोग्रामिंगचे तोटे या सर्व समान वैशिष्ट्यांमुळे उद्भवतात:

  • कोणतीही असाइनमेंट विधाने नाहीत. त्याऐवजी, नवीन व्हेरिएबल्समध्ये नवीन मूल्ये संग्रहित केली जातात, ज्यामुळे सतत वाटप करण्याची आणि स्वयंचलितपणे मेमरी सोडण्याची गरज निर्माण होते. परिणामी, अत्यंत कार्यक्षमतेने कचरा गोळा करणे हे कार्यात्मक कार्यक्रम कार्यान्वित करणार्‍या कोणत्याही प्रणालीचा एक आवश्यक भाग आहे.

  • गैर-कठोर मूल्यमापन म्हणजे फंक्शन कॉलचा क्रम अप्रत्याशित आहे, ज्यामुळे ऑपरेशन्सचा क्रम महत्त्वाचा असताना I/O समस्या निर्माण होतात.

हे फंक्शनल प्रोग्रामिंगच्या आमच्या द्रुत पुनरावलोकनाचे निष्कर्ष काढते. आता प्रोग्रामिंग शैलीकडे वळू.

अत्यावश्यक प्रोग्रामिंग खालील वैशिष्ट्यांद्वारे वैशिष्ट्यीकृत प्रोग्रामिंग नमुना आहे:

  • प्रोग्रामच्या स्त्रोत कोडमध्ये सूचना (स्टेटमेंट्स) असतात.

  • निर्देशांचे अनुक्रमे पालन करणे आवश्यक आहे.

  • मागील सूचना अंमलात आणून व्युत्पन्न केलेला डेटा नंतरच्या सूचनांद्वारे मेमरीमधून वाचला जाऊ शकतो.

  • सूचना कार्यान्वित करून प्राप्त केलेला डेटा मेमरीमध्ये लिहिला जाऊ शकतो.

अत्यावश्यक भाषांची मुख्य वैशिष्ट्ये येथे आहेत:

  • बुलियन व्हेरिएबल्सचा वापर.
  • असाइनमेंट ऑपरेटरचा वापर.
  • मिश्रित अभिव्यक्तींचा वापर.
  • सबरूटीनचा वापर.

अत्यावश्यक कार्यक्रम नैसर्गिक भाषांमध्ये अनिवार्य मूडमध्ये व्यक्त केलेल्या ऑर्डरप्रमाणे असतो. दुस-या शब्दात सांगायचे तर, अत्यावश्यक कार्यक्रम म्हणजे आदेशांचा क्रम.

अत्यावश्यक प्रोग्रामिंग भाषांमध्ये C आणि C++ समाविष्ट आहे.

घोषणात्मक प्रोग्रामिंग एक प्रोग्रामिंग नमुना आहे ज्यामध्ये समस्येचे निराकरण निर्दिष्ट केले जाते. म्हणजेच, अंतिम परिणामाचे वर्णन केले आहे, ते साध्य करण्याचा मार्ग नाही. HTML हे घोषणात्मक भाषेचे उदाहरण आहे. या भाषेत टॅग लिहिताना, आम्ही पृष्ठावर घटक कसे काढले जातील याचा विचार करत नाही. आम्ही फक्त पृष्ठ कसे दिसावे याचे वर्णन करतो.

दुसरी घोषणात्मक प्रोग्रामिंग भाषा SQL आहे.

वास्तविक जीवनातील उदाहरणाचा विचार करून प्रोग्रामिंगच्या दोन शैलींची तुलना करूया : एखाद्या व्यक्तीला विशिष्ट ठिकाणी कसे जायचे हे आपण कसे समजावून सांगू?

या परिस्थितीची कल्पना करा: एक माणूस रस्त्यावर आमच्याकडे येतो आणि विचारतो, "मी संग्रहालयात कसे जाऊ?"

अत्यावश्यक दृष्टिकोनासह, आम्ही त्याला तेथे पायी कसे जायचे याचे अल्गोरिदम प्रदान करू:

  • इकडे वळवा
  • सरळ रेषेत 2 ब्लॉक चाला
  • उजवीकडे वळा

घोषणात्मक दृष्टिकोनाने, आम्ही फक्त पत्ता देऊ, आणि मग ती व्यक्ती स्वतःहून योग्य ठिकाणी पोहोचेल.

Java ही सध्या एक मल्टी-पॅराडाइम प्रोग्रामिंग भाषा आहे . बहु-प्रतिमा म्हणजे भाषा अनेक प्रतिमानांना समर्थन देते.

त्याच्या प्रदीर्घ उत्क्रांतीदरम्यान, भाषेने त्याचे ऑब्जेक्ट-ओरिएंटेड मॉडेल वाढवले ​​आहे जेणेकरुन त्याच्या वापरकर्त्यांना भिन्न साधने असतील आणि त्यांच्या विशिष्ट कार्यासाठी सर्वोत्तम निवडू शकतील.

परिणामी, Java सध्या अत्यावश्यक दृष्टिकोन (जसे की पद्धत कॉलसाठी कोड लिहिणे) आणि घोषणात्मक दृष्टिकोन (जसे की रनटाइमवर उपलब्ध भाष्य) या दोन्हीला समर्थन देते.

चला सारांश द्या:

  • विविध प्रोग्रामिंग पॅराडाइम्स आहेत.

  • घोषणात्मक आणि अनिवार्य दृष्टिकोन आहेत.

  • हातातील कामासाठी सर्वात योग्य असा एक निवडा.

  • Java ही एक बहु-प्रतिमा भाषा आहे जी दोन्ही दृष्टिकोनांना समर्थन देते.