2008-08-22 10 views
54

मुझे अपने आराम क्षेत्र के बाहर भाषाएं पढ़ना पसंद है, लेकिन मुझे कार्यात्मक भाषाओं के लिए शुरू करने के लिए एक जगह खोजने में मुश्किल हुई है। मैंने Structure and Interpretations of Computer Programs के बारे में बहुत अच्छी बातें सुनीं, लेकिन जब मैंने कुछ साल पहले इसे पढ़ने की कोशिश की तो यह मेरे सिर पर लग रहा था। मैं वेब साइटों की तुलना में किताबों के साथ बेहतर तरीके से काम करता हूं, लेकिन जब मैं स्थानीय पुस्तक स्टोर पर जाता हूं तो एलआईएसपी पर किताबें डरावनी लगती हैं।कार्यात्मक प्रोग्रामिंग पर एक अच्छा प्रारंभिक पाठ क्या है?

तो एक अच्छा प्रारंभिक बिंदु क्या है? मेरा लक्ष्य 6 महीने या उससे भी कम समय में सरल समस्याओं को हल करने के लिए एक कार्यात्मक प्रोग्रामिंग भाषा का उपयोग करने में सक्षम होना है, और अधिक उन्नत विषयों पर जाने की क्षमता, यह पहचानना कि जब कार्यशील भाषा नौकरी के लिए सही उपकरण है, और भाषा का उपयोग करें 2-3 साल के दौरान अधिक समस्याएं हल करें। मुझे ऐसी किताबें पसंद हैं जो उदाहरणों पर भारी हैं लेकिन इसमें काम करने के लिए चुनौतियां भी शामिल हैं। क्या ऐसी चीज कार्यात्मक भाषाओं के लिए मौजूद है?

+10

अपने स्थानीय किताब की दुकान वास्तव में लिस्प पर किताबें है? –

+1

एक कंप्यूटर किताब की दुकान मैं पिछले सप्ताह का दौरा किया 'लिस्प की भूमि', 'प्रैक्टिकल कॉमन लिस्प' और 'SICP' था (एफ # और सी # में उदाहरण के साथ)। .. –

उत्तर

30

The Little Schemer वास्तव में अच्छी तरह प्रत्यावर्तन सिखाता है, और यह मजेदार और पढ़ने के लिए आसान है।

मैं भी भाषा में एक व्यापक परिचय के लिए The Scheme Programming Language पसंद आया।

4

मैं The Little Schemer पाया कार्यात्मक प्रोग्रामिंग करने के लिए एक महान, महान परिचय। यह पूरी तरह से सरल, काटने वाले आकारों पर आधारित है जो पुस्तक के चलते बनते हैं।

2

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

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

1

आप नेट के साथ अनुभव है, तो Expert #F अच्छा है।

एफ # ओकैमल से लिया गया है। कार्यात्मक भाषाएं जाने के रूप में लिस्प अधिक शुद्ध है।

+2

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

15

एसआईसीपी एक महान पुस्तक है।

यह शायद मेरी पूर्वाग्रह है, लेकिन मैंने सोचा कि ocaml में आने के लिए बहुत आसान था। आपके पास पूरी तरह से आरामदायक होने तक कुछ अलग शैलियों में प्रोग्रामिंग का विकल्प होता है। I posted a bunch of links हास्केल और ओकैमल संदर्भों के लिए पुस्तकें हैं, उदाहरणों और कैटरिया जो आपकी गली को सही लगती हैं।

यदि आप लिस्प पसंद करते हैं, तो आप 99-problems in Lisp (जो आप किसी भी भाषा में वास्तव में कर सकते हैं) के माध्यम से पावर करने का प्रयास कर सकते हैं, या आप एसआईसीपी लिखने वाले लोगों से lectures देख सकते हैं।

सड़क के नीचे, "Purely Functional Data Structures" की पकड़ प्राप्त करें, क्योंकि यह हार्ड-कोर गहरे डिज़ाइन और विचारों को आपको कार्यात्मक भाषाओं में ध्यान में रखना होगा - यह एमएल का उपयोग करता है (जो ओकैम से लिया गया है)।

+0

मैं अब एसआईसीपी पढ़ रहा हूं, लेकिन मुझे यकीन नहीं है कि आप फिर से किस बारे में बात कर रहे हैं: "लग्रेंज"? दूसरी एड की पेपरबैक प्रति में इंडेक्स में लग्रेंज का एकमात्र संदर्भ लैगेंज इंटरपोलेशन पर यह फुटनोट है: http://www-mitpress.mit.edu/sicp/full-text/book/book-Z-H-18।एचटीएमएल # footnote_Temp_299 – spacemanaki

+0

वह भाग एसआईसीएम (क्लासिकल मैकेनिक्स की संरचना और व्याख्या), मेरी गलती का जिक्र कर रहा था। – nlucaroni

0

मैंने Haskell Functional Programming के बारे में अच्छी बातें सुनी हैं, लेकिन मुझे अमेज़ॅन में कार्यात्मक प्रोग्रामिंग पुस्तकें के list भी मिलते हैं जो आपके लिए सहायक हो सकते हैं।

5

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

+0

+1, किताब में मुख्य रूप से एक पाठ्य पुस्तक के रूप में लिखा गया है, इस पुस्तक में बहुत सारे उत्कृष्ट अभ्यास हैं। स्पष्टीकरण और कथा पुस्तक को एक अच्छी पसंद भी बनाती है। –

5

चूंकि विभिन्न कार्यात्मक प्रोग्रामिंग भाषाओं का एक समूह है, इसलिए किताबों की सिफारिश करना मुश्किल है। लेकिन यदि आप आम लिस्प में रुचि रखते हैं, तो हाल ही में मैं पीटर सेबेल द्वारा "Practical Common Lisp" पढ़ रहा हूं, जिसे आप check out online for free पर अपनी हार्ड अर्जित नकद छोड़ने से पहले कर सकते हैं। यह महान स्पष्टीकरण और उदाहरणों के टन के साथ, सीएल के लिए एक सुंदर सौम्य परिचय है। सेबेल एक महान लेखक है (उदाहरण: the story of Mac पढ़ें,) वह आपको व्यस्त रखने में अच्छा है, जो वास्तव में एसआईसीपी गिरता है, मुझे लगता है। यह बस इतना सूखा है! लेकिन प्रैक्टिकल कॉमन लिस्प काफी उदाहरण-भारी है, लेकिन इसमें वास्तव में काम करने के लिए चुनौतियां नहीं हैं, हालांकि उदाहरण अधिकतर आपको काम करने और उन पर निर्माण करने के लिए तैयार किए जाते हैं।

एक और अच्छी किताब, यह एक योजना उन्मुख: How to Design Programs। (Online) मेरे पास इस पुस्तक के साथ उतना समय नहीं था, एक शेमर की तुलना में लिस्पर से अधिक होने के नाते, लेकिन यह अच्छी तरह से लिखा गया है, इसमें अच्छी स्पष्टीकरण और उदाहरण हैं, और इसमें बहुत सारे व्यायाम हैं। यह योजना भीड़ में बहुत लोकप्रिय लगता है।

4

मैंने जेफरी उलमैन के एमएल प्रोग्रामिंग के तत्वों से सीखा, जो कि बहुत अच्छा है। यह मानक एमएल के बारे में होने के लिए अंक खो देता है, जब ओकैमल, एफ #, और हास्केल (प्रतीत होता है) अधिक लोकप्रिय होते हैं।

11

मैं वास्तव में "लिस्प पर" पॉल ग्राहम से सलाह देते हैं।

यह कार्यात्मक प्रोग्रामिंग में शुरुआती लोगों के लिए संक्षिप्त और बहुत पठनीय है (जैसा कि मैंने इसे पढ़ा था)। इसमें बहुत सारे छोटे उदाहरण हैं, प्रत्येक जो एक ही चीज़ को समझने में मदद करता है।

मुझे अक्सर इस पुस्तक को पढ़ने का विचार किया जाता है: यह केवल ऐसी भाषा है जिसमें मैं अन्य सुविधाओं (गैर-कार्यात्मक) भाषाओं में कभी भी चाहता था, लेकिन कभी नहीं मिला। :-( और यह वास्तव में यह जानने के लिए किताब, हमेशा की तरह, सुबोध कभी कभी भी अजीब है!

आप इसे मुक्त करने के लिए the author's site पर प्राप्त कर सकते हैं!

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