2009-03-12 19 views
5

कार्यात्मक प्रोग्रामिंग के आसपास सभी प्रचार के साथ, जो कार्यात्मक प्रोग्रामिंग [सी # प्रोग्रामर के लिए] में शुरू करने के लिए सबसे अच्छे संसाधन हैं? मैं सी # 3.0 भाषा सुधार की तलाश नहीं कर रहा हूं।मैं कार्यात्मक प्रोग्रामिंग के साथ कैसे शुरू कर सकता हूं?

उत्तर

11

मुझे लगता है कि .NET पृष्ठभूमि के साथ एक सी # डेवलपर के लिए, कार्यात्मक प्रोग्रामिंग में प्रवेश करने का सबसे अच्छा तरीका F # सीखना है।

+0

अंततः मुझे हास्केल के बजाय F # को आजमाने के लिए पर्याप्त प्रेरणा मिली है। पाइथन प्लग के बावजूद धन्यवाद – suhair

0

मैंने भाषा Haskell का उपयोग करके कॉलेज में कार्यात्मक प्रोग्रामिंग सीखा।

अपने मुखपृष्ठ में आप सबसे अधिक संभावना लगता है कि तुम क्या आरंभ करने के लिए :)

BTW की जरूरत है, यह समाधान को देखने के लिए अभ्यास का एक बहुत लेता है; एल्गोरिदम, ऐसे में, ऑब्जेक्ट-ओरिएंटेड, तर्क या प्रक्रियात्मक भाषाओं में कोड करने के लिए हर किसी का उपयोग नहीं किया जाता है।

2

लिस्प या योजना को देखने में कुछ समय व्यतीत करें क्योंकि वे कार्यशील प्रोग्रामिंग की मां और पिता हैं। PLT Scheme योजना के साथ खेलने के लिए एक महान वातावरण है। खुद को The Little Schemer की एक प्रति प्राप्त करें क्योंकि यह योजना के लिए एक अच्छा परिचय है और आपको तेजी से तेज़ी से उठने में मदद करेगा।

एक बार जब आप अपने सिर को कार्यात्मक तरीके से प्राप्त कर लेते हैं तो Project Euler कुछ कार्यात्मक तरीके से समस्याएं करने का प्रयास करें।

4

एक कार्यात्मक भाषा चुनें। Python में कई कार्यात्मक विशेषताएं हैं। Haskell पूरी तरह कार्यात्मक है।

Project Euler पर जाएं।

कुछ समस्याएं हल करें।

यदि आप प्रोजेक्ट यूलर stats पर देखते हैं, तो पायथन और हास्केल बहुत अधिक रैंक वाले हैं।


अजगर में कार्यात्मक प्रोग्रामिंग संपादित करें:

+0

+1 (क्या यह कार्यात्मक नहीं है :)) –

+0

@ ओजे: जो लोग सोचते हैं कि पाइथन कार्यात्मक प्रोग्रामिंग का समर्थन करता है, उन लोगों से जोड़ा गया संदर्भ। –

+0

सहमत, पायथन एक कार्यात्मक प्रोग्रामिंग भाषा नहीं है, लेकिन इसमें कार्यात्मक विशेषताएं हैं। यह एक पुरानी पोस्ट है, और मैं सराहना करता हूं कि एसएलॉट ने इस विषय पर एक पुस्तक लिखी है। फिर भी, पाइथन के लिए कोई डिफैक्टो तृतीय पक्ष कार्यात्मक लाइब्रेरी नहीं लिखी गई है जिसे मुझे थोड़ा निराशाजनक लगता है। निश्चित रूप से विभिन्न प्रयासों और योगदान हुए हैं लेकिन इक्मास्क्रिप्ट इत्यादि के लिए जेएस पुस्तकालयों के समान कुछ भी नहीं लिया गया है – arcseldon

0

मैं Mehrdad Afshari से सहमत हैं। यदि आप एफ # के साथ सी # प्रारंभिक प्रोग्रामिंग से परिचित हैं। वाक्यविन्यास सी # में लैम्ब्डा अभिव्यक्ति के समान है।

12

बेकार प्लग: मैं सह-लेखक (अच्छी तरह से, गौरवशाली संपादक वास्तव में :) Real World Functional Programming का हूं। यह आपके जैसे लोगों के लिए पूरी तरह से लक्षित है। यह कार्यात्मक प्रोग्रामिंग के सिद्धांतों को सिखाता है, ज्यादातर एफ # के माध्यम से, और यह भी दिखाता है कि आप सी # में कई मामलों में समान सिद्धांतों को कैसे लागू कर सकते हैं।

यह मानता है कि आप पहले ही सी # जानते हैं, लेकिन स्क्रैच से एफ # प्रस्तुत करते हैं।यह आपको शुरू करने के लिए एफ # का पर्याप्त ज्ञान देता है ताकि आप प्रयोग कर सकें, लेकिन इसका उद्देश्य एक भाषा के रूप में F # के हर नुक्कड़ और क्रैनी में जाने के बजाए सोचने का एक कार्यात्मक तरीका सिखाना है। (दूसरे शब्दों में, यदि आप एक उत्पादन भाषा के रूप में एफ # का उपयोग शुरू करना चाहते हैं, मैं एक और किताब रूप में अच्छी तरह मिल चाहते हैं।)

यह अभी तक बाहर नहीं है, लेकिन आप MEAP कार्यक्रम के माध्यम से जल्द पहुंच प्राप्त कर सकते हैं। जल्द ही आने वाले कई अध्याय उपलब्ध हैं।

+0

उस पुस्तक के मृत लकड़ी संस्करण तक अन्य संसाधनों के लिए कोई सुझाव? – suhair

+0

यदि आप ईबुक की बजाय मृत लकड़ी पर उत्सुक हैं, तो दो अप्रेस एफ # किताबें हैं: एफ # (रॉबर्ट पिकरिंग) और विशेषज्ञ एफ # (डॉन सिम्स) –

+0

की नींव मैं मैनिंग साइट से इस के मुफ्त खंड के माध्यम से पढ़ रहा हूं - बहुत रोचक सामग्री और यह अच्छी तरह से लिखा है। एक छोटी सी चीज: पृष्ठ 16 में "कोड पहले सभी मृतकों को स्टोर करने के लिए एक अस्थायी सूची बनाता है।" - एक संपादन जॉन के साथ कर सकता है! –

3

Real World Haskell का मुफ्त ऑनलाइन संस्करण शुरू करने का एक अच्छा, सस्ता तरीका है।

एक बार जब आप कुछ अध्याय कर चुके हैं, तो आप यह तय करने की स्थिति में होंगे कि एफपी आपके लिए है या नहीं, और आप हास्केल के साथ जारी रखना चाहते हैं या किसी अन्य भाषा में जाना चाहते हैं। आप मृत पेड़ संस्करण (जैसे मैंने किया) खरीदने के लिए भी जा सकते हैं।

इस पुस्तक, विशेष रूप से शुरुआती अध्यायों से सीखने वाले प्रतिमान, अन्य कार्यात्मक भाषाओं के लिए समान रूप से अच्छी तरह से लागू होते हैं। (मुझे लगता है कि मेरे जावास्क्रिप्ट और ग्रोवी को मेरे अध्ययन हास्केल से फायदा हुआ)।

0

मुझे अब तक learn you a haskell पसंद आया है, यह शुरुआती लोगों के लिए बहुत अच्छा है।

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