क्या जावास्क्रिप्ट एक कार्यात्मक भाषा है? मुझे पता है कि इसमें वस्तुएं हैं और आप इसके साथ OOP भी कर सकते हैं, लेकिन क्या यह एक कार्यात्मक भाषा भी है, क्या इसका उपयोग उस तरह से किया जा सकता है?
कभी-कभी, लोग कार्यात्मक प्रोग्रामिंग कहेंगे, जब उनका मतलब होता है तो जरूरी है प्रोग्रामिंग या प्रक्रियात्मक प्रोग्रामिंग । सख्ती से बोलना, कार्यात्मक प्रोग्रामिंग है:
कंप्यूटर विज्ञान में, कार्यात्मक प्रोग्रामिंग एक प्रोग्रामिंग प्रतिमान है जो गणना को गणितीय कार्यों के मूल्यांकन के रूप में मानता है और राज्य और पारस्परिक डेटा से बचा जाता है । यह फ़ंक्शन के अनुप्रयोग पर जोर देता है, अनिवार्य प्रोग्रामिंग शैली के विपरीत, जो राज्य में परिवर्तनों पर जोर देता है। फंक्शनल प्रोग्रामिंग की जड़ें लैम्ब्डा कैलकुलस में हैं, जो फंक्शन डेफिनिशन, फंक्शन एप्लिकेशन और इंस्ट्रक्शन की जांच के लिए 1930 के दशक में विकसित एक औपचारिक प्रणाली है। कई कार्यात्मक प्रोग्रामिंग भाषाओं को लंबोदा पथरी पर विस्तार के रूप में देखा जा सकता है।
हालाँकि जावास्क्रिप्ट व्यापक रूप से ज्ञात नहीं है या इसे एक कार्यात्मक भाषा के रूप में उपयोग किया जाता है, इसमें कुछ कार्यात्मक तत्व हैं :
जावास्क्रिप्ट योजना के साथ बहुत आम है। यह एक गतिशील भाषा है। इसमें एक लचीला डेटाटाइप (सरणियाँ) है जो आसानी से एस-भावों का अनुकरण कर सकता है। और सबसे महत्वपूर्ण बात, कार्य लंबोदर हैं।
योजना लिस्प की एक बोली है , और संभवत: उन भाषाओं में से एक है जो अधिकांश प्रोग्रामर सोचते हैं कि वे कब कार्यात्मक प्रोग्रामिंग पर चर्चा करते हैं। जब वस्तु अभिविन्यास की बात आती है , तो जावास्क्रिप्ट एक वस्तु उन्मुख भाषा है। लेकिन इसका ऑब्जेक्ट ओरिएंटेशन प्रोटोटाइप आधारित है :
प्रोटोटाइप-आधारित प्रोग्रामिंग ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की एक शैली है जिसमें कक्षाएं मौजूद नहीं हैं, और व्यवहार पुन: उपयोग (क्लास-आधारित भाषाओं में विरासत के रूप में जाना जाता है) मौजूदा वस्तुओं को क्लोन करने की एक प्रक्रिया के माध्यम से किया जाता है जो प्रोटोटाइप के रूप में काम करते हैं। इस मॉडल को वर्गहीन, प्रोटोटाइप-उन्मुख या उदाहरण-आधारित प्रोग्रामिंग के रूप में भी जाना जा सकता है। डेलिगेशन भाषा की विशेषता है जो प्रोटोटाइप-आधारित प्रोग्रामिंग का समर्थन करता है।
इसलिए यद्यपि जावास्क्रिप्ट ऑब्जेक्ट ओरिएंटेड है, यह अधिक सामान्य वर्ग आधारित मॉडल का पालन नहीं करता है , क्योंकि C ++, C #, जावा और PHP (और कुछ अन्य) जैसी भाषाएं करते हैं। और निश्चित रूप से यह एक अनिवार्य भाषा भी है, जो कि ऊपर वर्णित कार्यात्मक प्रोग्रामिंग के साथ भ्रम की ओर जाता है।
आप जानते हैं कि ओओपी कैसे बन गया / प्रोग्रामिंग में अगले विकास की तरह लगता है, इसका मतलब यह है कि 'कार्यात्मक प्रोग्रामिंग' अगला विकास है
ऑब्जेक्ट ओरिएंटेशन और फंक्शनल प्रोग्रामिंग कई अलग-अलग प्रोग्रामिंग प्रतिमानों में से सिर्फ दो हैं , वे विभिन्न अवधारणाओं और अमूर्तताओं के साथ प्रोग्रामिंग की विभिन्न शैलियों हैं। मुख्य शब्द "अलग" है। वहाँ एक भी प्रतिमान नहीं है जो दूसरों की तुलना में बेहतर है या दूसरों की तुलना में अधिक विकसित है, प्रत्येक और हर एक कुछ परिदृश्यों को दूसरों की तुलना में बेहतर फिट करता है। कुछ अन्य की तुलना में काफी पुराने हो सकते हैं, लेकिन विकासवादी शब्दों में, जो उन्हें बेहतर बनाता है, क्योंकि वे लंबे समय तक जीवित रहे हैं। लेकिन यह देखने का बहुत स्मार्ट तरीका नहीं है।
जावास्क्रिप्ट, जैसा कि मैंने ऊपर और कुछ अन्य भाषाओं के रूप में वर्णित किया है, बहु-प्रतिमान है। यह आपको अनिवार्य, प्रोटोटाइप आधारित वस्तु उन्मुख और कार्यात्मक शैली में कोड लिखने की अनुमति देता है। यह आप पर निर्भर है कि आप जो भी निर्माण कर रहे हैं, उसमें से कौन सा सबसे अच्छा है। कई एकल प्रतिमान भाषाएं भी हैं, विहित उदाहरण जावा, जो केवल कक्षा आधारित वस्तु उन्मुख प्रोग्रामिंग 1 के लिए अनुमति देता है ।
आपको वास्तव में भाषाओं और प्रतिमानों को फैशन स्टेटमेंट के रूप में मानने का आग्रह करना चाहिए। वहाँ बाहर बकवास की एक बहुतायत है, ज्यादातर fanboys / fangirls या विपणन लोगों द्वारा लिखा गया है, थोड़ा (यदि कोई है) ज्ञान और प्रोग्रामिंग की समझ के साथ। "बेहतर", "अधिक विकसित" आदि जैसे शब्द, बस लागू नहीं होते हैं।
मैं उदाहरणों के माध्यम से सबसे अच्छा सीखता हूं, हो सकता है कि कोई व्यक्ति एक ही कार्य को OOP तरीके से और फिर एक कार्यात्मक प्रोग्रामिंग तरीके से खुद को समझने और तुलना करने के लिए दिखा सके कि कार्यात्मक प्रोग्रामिंग क्या करता है / है।
यह सीखने का एक भयानक तरीका होगा। कार्यात्मक और वस्तु अभिविन्यास काफी अलग शैली हैं, और बहुत सरल लोगों के अलावा कोई भी उदाहरण एक या दूसरी शैली में फिट नहीं होगा।
1 लेकिन हाल ही में जेनेरिक प्रोग्रामिंग के लिए अपने दायरे का विस्तार करने की कोशिश करता है, देखते हैं कि यह कैसे जाता है।
निष्कर्ष के तौर पर:
- जावास्क्रिप्ट सीखने पर ध्यान दें, यह एक सुंदर और अत्यधिक उपयोगी भाषा है। भाषा सीखें, प्रचार नहीं।
- काफी कुछ अलग मानदंड, सभी समान रूप से उपयोगी। आपको चुनने के लिए कि आप जो पसंद करते हैं और जो आप निर्माण कर रहे हैं, वह सबसे अच्छा है।
- यदि आप कार्यात्मक प्रोग्रामिंग सीखना चाहते हैं, तो अधिक अनुकूल भाषा चुनें, जैसे स्कीम या क्लोजर । लेकिन आपको पहले गणितीय अवधारणाओं को समझना होगा।
- पूछने से पहले कुछ शोध करें। आपके अधिकांश प्रश्नों का उत्तर प्रासंगिक विकिपीडिया लेखों द्वारा दिया गया है। किसी भी प्रोग्रामर के लिए यह जानना कि कैसे शोध करना है और कैसे पूछना है।