कार्यात्मक प्रोग्रामिंग पर सुलभ पुस्तक [बंद]


17

मैं एक ऐसी पुस्तक की तलाश कर रहा हूं, जो कार्यात्मक प्रोग्रामिंग को सुलभ तरीके से समझाए। इसके अलावा, मैं एक को पसंद करूँगा जो बहुत सुस्त नहीं है, और एक गूढ़ भाषा का उपयोग नहीं करता है।

आदर्श रूप से यह उन उदाहरणों का उपयोग करेगा जो उन स्थितियों को प्रदर्शित करते हैं जहां कार्यात्मक प्रोग्रामिंग अनिवार्य दृष्टिकोण की तुलना में अधिक सुरुचिपूर्ण या सरल समाधान की ओर जाता है।

मेरे पास प्रोग्रामिंग अनुभव का एक उचित मात्रा है, लेकिन कार्यात्मक प्रोग्रामिंग का कोई ज्ञान नहीं है। किसी भी सुझाव के लिए धन्यवाद


3
मुझे उत्सुकता है अगर आपके मन में एक विशेष भाषा थी जब आपने कहा था कि आप "गूढ़ भाषा" का उपयोग नहीं करना चाहते हैं।
MatrixFrog

@ मेट्रिक्स फ्रॉग: मुझे 99% यकीन है कि "गूढ़ भाषा" से उनका मतलब स्कीम से है। वह शायद इस बात से अवगत थे कि एसआईसीपी की सिफारिश की जाने वाली पहली पुस्तक होगी।
user16764

@ user16764 लेकिन "सुलभ"? यह कैसे कंप्यूटर विज्ञान पाठ्यक्रम की संरचना और व्याख्या में लेखक (नों) द्वारा दिए गए तर्क के आधार पर प्रोग्राम (या दूसरा संस्करण ) डिजाइन करने के लिए होगा ।
मार्क सी।

जवाबों:


13

मैं " द लिटिल स्कीमर " (और उसके बाद शायद " द रीज़्ड स्कीमर ") के साथ शुरुआत करूँगा ।

यदि आपको लगता है कि योजना बहुत गूढ़ है, या यदि आप जावास्क्रिप्ट पसंद करते हैं, तो डगलस क्रॉकफोर्ड ने कई अभ्यासों का जावास्क्रिप्ट में अनुवाद किया है: http://javascript.crockford.com/little.html

यदि आप टॉमस पेट्रिसक द्वारा सी #, " रियल-वर्ल्ड फंक्शनल प्रोग्रामिंग " का आनंद लेते हैं, तो शुरुआत करने के लिए एक उत्कृष्ट स्थान होगा। यह F # का एक अच्छा परिचय भी है।


10

अगर आपको स्टैटिकली टाइप की हुई भाषाएं और [ब्रैकेट] पसंद हैं:

हस्केल जबकि प्रोग्रामिंग प्रतिमान की शुद्धता पर भारी है, एक भाषा के लिए सबसे अच्छा परिचय है, जो मैंने अभी तक "लर्न यू हस्कल फॉर ग्रेट गुड" के रूप में देखा है। वेबसाइट के मुफ्त होने के साथ ही पुस्तक का रूप वैकल्पिक है, लेकिन यह एक ऐसा लेखक है जिसे मैंने महसूस नहीं किया। रियल वर्ल्ड हास्केल अच्छा है, लेकिन वास्तव में इसे [जानें..गोड] तक अनुवर्ती रूप में लिया जाता है। आरडब्ल्यूएच वैकल्पिक पपीरी अच्छाई के साथ भी मुक्त है।

हास्केल से आप F # या OCaml जैसे अन्य एमएल वेरिएंट में आसानी से संक्रमण कर सकते हैं, दोनों का अधिक व्यापक रूप से उपयोग किया जाता है। खून बह रहा किनारे के लिए एटीएस

अगर आपको पसंद है (और डायनेमिक_Typing कोष्ठक):

योजना दो मुख्य लिस्प बोलियों की अधिक कार्यात्मक रूप से उन्मुख है, आम लिस्प की तुलना में छोटी और शुद्ध लेकिन उद्योग में कम व्यापक रूप से उपयोग की जाती है। मुझे व्यक्तिगत रूप से कंप्यूटर प्रोग्राम की संरचना और व्याख्या पसंद है , लेकिन यह एक काफी सिद्धांत वाली भारी किताब है, जबकि निगलने में थोड़ी मुश्किल आपको बेहतर प्रोग्रामर बना देगी।

यदि आप कॉमन लिस्प को पसंद करते हैं या तो प्रैक्टिकल कॉमन लिस्प या लैंड ऑफ लिस्प अच्छा निवेश लगता है, तो पहला मुफ्त ऑनलाइन है और दूसरा काफी सस्ता और अधिक महत्वपूर्ण (कुछ के लिए) गेम केंद्रित है। यह स्कीम की तुलना में कम शुद्ध होने के बावजूद अधिक शक्तिशाली है।

इनसे, आप चाहें तो क्लोजर में विस्तार कर सकते हैं। यह JVM के लिए लिस्प है, इसलिए इसे तैनात करना आसान है और "अकादमिक" होने के आरोपों से बचाव करने में सक्षम है। क्लीज्योर .NET को तैनात कर सकता है और जावास्क्रिप्ट को भी पार कर सकता है। नेटिव .NET के लिए, आयरनस्चेम आज़माएँ

आप अंतर को विभाजित भी कर सकते हैं और एक बार हस्केल में 48 घंटे में एक योजना लिखें


यदि आप SICP के साथ जाते हैं तो पुस्तक पर बहुत सारे वीडियो लेक्चर हैं, इनमें से सबसे प्रसिद्ध हैं: group.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures पॉल ग्राहम एक अच्छे लेखक हैं और इनके बारे में एक मुफ्त पुस्तक है। क्यों तुतलाना मधुमक्खी के घुटनों है paulgraham.com/onlisptext.html
simoraman

1
मैं रियल वर्ल्ड हास्केल का मुफ्त ऑनलाइन संस्करण पढ़ रहा हूं, और पाठ पढ़ने के दौरान टिप्पणियों को पढ़ने की क्षमता बेहद उपयोगी है। इसलिए यदि आप पेपर संस्करण प्राप्त करते हैं, तो आप ऑनलाइन संस्करण भी पढ़ना चाहते हैं। कुछ हिस्से टिप्पणियों के साथ कम भ्रमित करने वाले हैं।
MatrixFrog

4

मेरा पसंदीदा स्रोत हास्केल का कोमल परिचय है । मैं लर्न यू हास्केल और ओ'रेली रियल-वर्ल्ड हास्केल और साइमन थॉम्पसन के क्राफ्ट ऑफ फंक्शनल प्रोग्रामिंग का हिस्सा पढ़ता हूं , लेकिन मैं ईमानदारी से बेहतर डब्ल्यू / कोमल इंट्रो कर रहा हूं। यह हस्केल के के एंड आर की तरह है: भाषा के रचनाकारों द्वारा निर्मित एक पतला दस्तावेज़। न कोई चिंता, न संरक्षक, लेकिन न तो उनके उन्मूलन के लिए आप पर हावी होने की कोशिश कर रहे हैं, न ही।


1
सौम्य परिचय ज्यादा पेट के लिए एक फर्म पंच की तरह, बहुत सीधा और बकवास है। यह इस मायने में सौम्य है कि यह बिना द्वेष के हिंसा करता है, न तो कोड करने के लिए और न ही हावी होने के लिए; बल्कि, इस उम्मीद में कि पाठक वापस लड़ने के लिए आवश्यक आंतरिक शक्ति की खोज कर सकते हैं।
सीए मैक्कैन

1
हम्म, sensei, यकीन है कि मैं उस कल्पना का उपयोग नहीं करेंगे, लेकिन जो भी हो। यह हिंसक नहीं है और न ही आंतरिक एक मुद्दा है, लेकिन मैं w / बाकी सहमत हूँ। "कोमल" यहाँ थोड़ा विनोदी है। जैसे "मामूली प्रस्ताव"।
जॉनएल 4

1
हां, मैं कुछ ले रहा था ... वहाँ मामूली रचनात्मक स्वतंत्रता। ;] यह इन दिनों के आसपास अन्य परिचयात्मक सामग्री (किसी भी भाषा के लिए, न केवल हास्केल) की तुलना में कुछ मानसिक कुंद करने के लिए, मानसिक धैर्य का एक सा लेता है। K & R की तुलना मुझे लगता है कि आप शैली के उस प्रकार के लिए उपयोग किए जाते हैं, हालांकि। मैंने आम तौर पर माना है कि "कोमल" हास्केल रिपोर्ट और शोध पत्रों के ढेर से सीखने के विपरीत है।
सीए मैक्कैन

1

http://hop.perl.plover.com/ में एक पुस्तक शामिल है जिसे आप मुफ्त में डाउनलोड कर सकते हैं। यह बताता है कि पर्ल में कई कार्यात्मक तकनीकों का उपयोग कैसे किया जाता है।

अधिकांश यह कहते हैं कि जावास्क्रिप्ट, रूबी या पायथन में बहुत आसानी से अनुवाद किया जा सकता है।


1

मैं वर्तमान में स्वयं कार्यात्मक प्रोग्रामिंग सीख रहा हूं। हालांकि मैं हास्केल का उपयोग करना सीख रहा हूं।

यहाँ ऑनलाइन किताबों के एक जोड़े हैं (आप इन्हें हार्डकवर iirc में भी खरीद सकते हैं)

हास्केल एस्ट्रोसिक नहीं है और अधिक मुख्यधारा बन रहा है (कब्जे में मुख्य रूप से एलआईएसपी या एर्लांग के रूप में मुख्यधारा नहीं है)। हालाँकि यह एक शुद्ध कार्यात्मक भाषा है, और आपको कार्यात्मक प्रोग्रामिंग प्रतिमान सीखने के लिए मजबूर करेगी। के रूप में एक आधा अनिवार्य आधा कार्यात्मक दृष्टिकोण है कि आप एक गैर विशुद्ध कार्यात्मक भाषा का उपयोग कर मिल जाएगा के विपरीत है।

लोगों ने WebServers, Bittorrent Clients और कुछ वास्तविक दुनिया के अनुप्रयोगों को haskell का उपयोग करके विकसित किया है। हालाँकि मैं व्यक्तिगत रूप से अवधारणाओं को जानने के लिए इसका उपयोग कर रहा हूं और फिर C # & F # से अपील कर रहा हूं जो अब तक शानदार काम कर रहा है।

का आनंद लें।


1

मैंने कई बार "कंप्यूटर प्रोग्राम की संरचना और व्याख्या" के बारे में अच्छी बातें सुनीं। यह एक वास्तविक पुस्तक है, इसलिए आप इसे पेपर में भी प्राप्त करना चाहते हैं, http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871 देखें ।

यह यहां स्वतंत्र रूप से उपलब्ध है http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ) और व्याख्यान के वीडियो भी हैं ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )


एसआईसीपी अच्छा था, लेकिन मेरे अनुभव में सुलभ नहीं था।
विल्हेम

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.