2008-09-28 17 views
59

मैं देख रहा हूं कि कार्यात्मक प्रोग्रामिंग अवधारणाओं के साथ पकड़ने के लिए मिल रहा है।जावास्क्रिप्ट एक कार्यात्मक भाषा के रूप में

मैं वेब अनुप्रयोगों में ग्राहक साइड स्क्रिप्टिंग के लिए कई वर्षों के लिए जावास्क्रिप्ट का उपयोग किया है और अलग प्रोटोटाइप का उपयोग करने से यह सब आसान डोम हेरफेर, इनपुट सत्यापन आदि

देर के

था, मेरे पास है often read कि जावास्क्रिप्ट में से एक है भाषात्मक प्रोग्रामिंग का समर्थन करने वाली भाषाएं।

जावास्क्रिप्ट के साथ मेरी परिचितता और अनुभव के साथ, मेरी प्राथमिकता इसे कार्यात्मक प्रोग्रामिंग सीखने के लिए उपयोग करना है। मुझे उम्मीद है कि मैं मुख्य कार्यात्मक अवधारणाओं पर अधिक ध्यान केंद्रित करने में सक्षम हूं और पूरी तरह से नए वाक्यविन्यास से नीचे या विचलित नहीं हो पाऊंगा।

तो संक्षेप में, जावास्क्रिप्ट कार्यात्मक प्रोग्रामिंग अवधारणाओं को सीखने के लिए एक अच्छा विकल्प है? जावास्क्रिप्ट में कौन सी क्षमताओं प्रासंगिक/समर्थन कार्यात्मक प्रोग्रामिंग हैं?

+0

जाने का सबसे अच्छा तरीका पूरी तरह कार्यात्मक है। फिर आप पेशेवरों और विपक्ष को समझेंगे। – andho

उत्तर

6

हालांकि जावास्क्रिप्ट कुछ डिग्री पर एफपी का समर्थन करता है, लेकिन यह सीधे इसे प्रोत्साहित नहीं करता है। यही कारण है कि अंतराल को भरने के लिए Oliver Steele's Functional जैसी परियोजनाएं मौजूद हैं। तो मैं एफपी सीखने के लिए इसकी सिफारिश नहीं करता। इसके बजाए एफ # देखें।

+0

लिंक के लिए धन्यवाद, मेरे पास कुछ पढ़ने के लिए है। – Ash

2

जावास्क्रिप्ट एक बहु-प्रतिमानी भाषा है। यदि आपका लक्ष्य कार्यात्मक भाषा अवधारणाओं को सीखना है, तो OCaml या Haskell जैसी शुद्ध कार्यात्मक भाषा से शुरू करने का प्रयास करें।

+9

"ओकैम" में "ओ" का क्या अर्थ है, एक बार फिर? – xmjx

+0

+1। उद्देश्य कैमल, और इसलिए, यह शुद्ध कार्यात्मक नहीं है, लेकिन बहु-प्रतिमान भी है, क्योंकि यह ओओ जोड़ता है। – Dereckson

6

मैं कहूंगा कि हालांकि आप जावास्क्रिप्ट के साथ कुछ कार्यात्मक प्रोग्रामिंग अवधारणाओं को जल्दी से समझ सकते हैं, जावास्क्रिप्ट का उपयोग लगातार एक कार्यात्मक प्रोग्रामिंग भाषा की तरह एक सामान्य अभ्यास नहीं है। कम से कम स्पष्ट रूप से आम नहीं है। अधिकांश लोग ट्यूटोरियल पोस्ट नहीं करते हैं जो जावास्क्रिप्ट के साथ कार्यात्मक प्रोग्रामिंग कैसे करें - एक मार्क्सिडाड इंगित करता है कि वास्तव में एक सुंदर सभ्य उदाहरण है, लेकिन आपको वह बहुत कुछ नहीं मिलेगा। कार्यात्मक पहलू अक्सर स्पष्ट नहीं होते हैं, जैसे कि लोग जावास्क्रिप्ट में बंद करने का उपयोग करते हैं, लेकिन वे इस बात से अनजान हैं कि वे इसे कर रहे हैं।

यह विचार कि आप किसी तीसरे फ़ंक्शन के लिए तर्क के रूप में दो कार्यों को पारित करेंगे, और उसके बाद वापसी मूल्य पहले दो कार्यों से संबंधित कुछ निष्पादन है एक उन्नत तकनीक है जो लगभग हमेशा पूर्ण- jQuery जैसे उड़ा पुस्तकालयों। स्वयं निष्पादित अज्ञात कार्यों और जैसे जमीन प्राप्त की है, लेकिन अभी भी लगातार उपयोग नहीं किया जाता है। अधिकांश ट्यूटोरियल प्रायः जावास्क्रिप्ट की ओओ क्षमताओं पर ध्यान केंद्रित करते हैं, जैसे संपत्तियों और विधियों, दायरे, अभिगम नियंत्रण और रचनाकारों की प्रोटोटाइप संपत्ति का उपयोग कैसे करें। ईमानदारी से, यदि कार्यात्मक प्रोग्रामिंग आप चाहते हैं, तो मैं इस क्षमता के लिए सख्ती से जाने वाली भाषा का चयन करूंगा।

+0

उपयोगी अंक, धन्यवाद। एक और समर्पित कार्यात्मक भाषा बेहतर विकल्प हो सकती है। मैं सभी के बाद एफ # पर एक नज़र डाल सकता है। – Ash

9

जावास्क्रिप्ट के कार्यात्मक पहलुओं से परिचित होने के लिए महान तरीका है। यदि आप एक बड़े पुस्तक में डाइविंग के बिना अपने पैरों को गीला करना चाहते हैं तो यह अपेक्षाकृत कम पढ़ा जाता है।

3

मैं The Little Schemer पढ़ने की अनुशंसा करता हूं, जो रिकर्सन के बारे में काफी पतली किताब है और कार्यात्मक शैली के लिए एक अच्छा परिचय है। हालांकि यह योजना पर केंद्रित है, इसे आसानी से जावास्क्रिप्ट पर लागू किया जा सकता है, http://javascript.crockford.com/little.html देखें। मैंने इसे अपने जावास्क्रिप्ट विकास में वास्तव में सहायक पाया, हालांकि यह अंत में काफी मुश्किल हो जाता है।

6

मुझे याद नहीं है कि यह किसने कहा था, लेकिन जावास्क्रिप्ट को "अल्गोल सिंटैक्स के साथ योजना" कहा गया है। तो योजना/लिस्प सीखने के लिए, जावास्क्रिप्ट खराब शुरुआत नहीं है। ध्यान दें कि लिस्प जैसी क्रियात्मक भाषाएं शुद्ध कार्यात्मक भाषाओं, जैसे हास्केल से काफी अलग हैं।

"प्रथम श्रेणी के कार्यों" के अलावा (मतलब यह है कि कार्य मूल्य हैं, जिन्हें चर के लिए असाइन किया जा सकता है), लेक्सिकल स्कोप एक कार्यात्मक भाषा बनाने का एक निहित हिस्सा भी है।

Higher Order Javascript और The Little Javascripter पहले से ही उल्लेख किया गया है। वे दोनों उत्कृष्ट ग्रंथ हैं। इसके अलावा, Higher Order Programming in Javascript एक आसान शुरुआत हो सकती है।

संबंधित मुद्दे