मुझे शक है CLOS पुरानी आदतों के लिए एक बैसाखी के रूप में काम करेगा, मैं इसे सी ++/जावा/पायथन में OO शैली से बहुत अलग है, और बहुत ही दिलचस्प हो पाया। मुझे सभी विवरण समझ में नहीं आ रहा है, लेकिन मैं पीटर सेबेल के प्रैक्टिकल कॉमन लिस्प की सिफारिश करता हूं। यदि आप पर लिस्प पर बिना किसी परेशानी के पढ़ रहे हैं, तो आप पीसीएल में the chapters introducing CLOS में गोता लगाने में सक्षम होना चाहिए। इसके अलावा, मैं जावा और कॉमन लिस्प की तुलना में Google Tech Talk की अनुशंसा करता हूं।
क्लासिक पाठ Structure and Interpretation of Computer Programs बंद (का उपयोग कर मॉड्यूलर प्रणाली के निर्माण के 3 अध्याय में काफी कुछ उदाहरण शामिल किया गया और राज्य और अस्थिरता शुरू करने की समस्याओं को संबोधित:
यहाँ यह एक अधिक पूर्ण जवाब बनाने के लिए कुछ और सिफारिशों है)। अध्याय 2 में कुछ सामान्य और डेटा/प्रकार-निर्देशित प्रोग्रामिंग शामिल हैं जो CLOS के अध्ययन को प्रेरित करने के लिए सहायक हो सकती हैं। इस पुस्तक को वास्तव में कोई परिचय की आवश्यकता नहीं है, हालांकि यह एक बड़ा काम है, और मैं बस वसंत के बाद धीरे-धीरे इसे पढ़ रहा हूं। यदि आप योजना में रूचि रखते हैं तो अत्यधिक अनुशंसा की जाती है।
SICP एक महान पुस्तक है, यह अपने दोषों के बिना नहीं है: इन पर वास्तव में एक दिलचस्प नज़र निबंध "The Structure and Interpretation of the Computer Science Curriculum" जो SICP के कुछ ही आलोचना पर बताते है, और के लेखकों ने लिखा है कार्यक्रम (डिजाइन कैसे मैंने एचटीडीपी नहीं पढ़ा है लेकिन मैंने सुना है कि यह बहुत अच्छा है)। हालांकि यह निबंध आपको विशेष रूप से सिखाएगा जो आप खोज रहे हैं - कार्यात्मक और ओओ प्रोग्रामिंग की तुलना करना - यह वास्तव में वैसे भी दिलचस्प है। उनका ताजा स्नातक पाठ्यक्रम स्कीम (मुझे लगता है, पीएलटी/रैकेट) का उपयोग कर कार्यात्मक प्रोग्रामिंग के पहले सेमेस्टर परिचय के साथ शुरू होता है और उसके बाद सीओ ++ या जावा के साथ ओओ प्रोग्रामिंग के सेमेस्टर के बाद होता है ... कम से कम वह निबंध में वह पाठ्यक्रम है जिसका वर्णन वे निबंध में करते हैं।
पीटर Norvig से ये स्लाइड OO प्रोग्रामिंग में आम डिजाइन पैटर्न में से कुछ का पता और कारण है कि वे लापता या योजना और लिस्प की तरह गतिशील, कार्यात्मक भाषाओं में अनावश्यक कर रहे हैं दिखाने: http://norvig.com/design-patterns/
मैं सावधानी से द्वारा पुस्तक की सिफारिश लिटिल स्कीमर किताबों के समान लेखकों: ए लिटिल जावा, ए कुछ पैटर्न। मैं निश्चित रूप से यह नहीं कह सकता कि यह वास्तव में एक अच्छी किताब है या नहीं, यह अविश्वसनीय रूप से अजीब था और कुछ वास्तव में खराब टाइपसेटिंग फैसले हैं (इटालिक, सेरिफ़, चर-चौड़ाई, सुपरस्क्रिप्ट प्रोग्रामिंग पर एक पाठ में नहीं है) , लेकिन यह देखने के लिए दिलचस्प हो सकता है। आप शायद इसे सस्ता पा सकते हैं, वैसे भी। इस सिफारिश को गंभीरता से न लें। मुझे लगता है कि योजना ग्रंथों से चिपकना बेहतर होगा।
पेज। मुझे एक टिप्पणी से असहमत होना है कि यह बताते हुए कि कार्यात्मक प्रोग्रामिंग ओओ प्रोग्रामिंग में जटिल नहीं है, मुझे लगता है कि यह पूरी तरह से गलत है। इसकी सभी चौड़ाई में कार्यात्मक प्रोग्रामिंग वास्तव में दिमागी दबदबा है। जब आप मानचित्र/फ़िल्टर/कम करने और प्रथम श्रेणी के कार्यों से परे जाते हैं, और आलसी मूल्यांकन, साइड इफेक्ट्स और उत्परिवर्तन से बचने, और मजबूत, स्थैतिक-टाइप की गई भाषाओं जैसे कार्यात्मक क्षेत्र में अन्य चीजों पर नज़र डालें, यह बहुत दिलचस्प हो जाता है, और निश्चित रूप से पारंपरिक ओओ प्रोग्रामिंग के रूप में जटिल है। मैंने केवल सतह को ही खरोंच कर लिया है लेकिन नए विचारों का एक बड़ा सौदा खोजा है। प्रोग्रामिंग जटिल व्यवसाय है, चाहे ओओ या कार्यात्मक हो।
मुझे नहीं लगता कि आपको ऐसी चीज मिल जाएगी। जब अधिकांश लोग एक नई भाषा सीखते हैं, तो वे इसे उस भाषा के परिप्रेक्ष्य से सीखने की कोशिश करते हैं, न कि किसी और के। इसके अलावा, ओओपी कार्यात्मक से कहीं अधिक जटिल है। चेक आउट * द लिटिल शेमर * या * एसआईसीपी * –
मुझे संदेह है कि सीएलओएस पुरानी आदतों के लिए एक क्रैच के रूप में काम करेगा, मुझे लगता है कि यह ओ + शैली से सी ++/जावा/पायथन में बहुत अलग है, और बहुत ही रोचक है। मैं सभी विवरणों को समझ नहीं पा रहा हूं, लेकिन मैं पीटर सेबेल के _Practical Common Lisp_ की अनुशंसा करता हूं। यदि आप बिना किसी परेशानी के _On Lisp_ पढ़ रहे हैं, तो आपको [पीसीएल में सीएलओएस शुरू करने वाले अध्याय] में गोता लगाने में सक्षम होना चाहिए (http://gigamonkeys.com/book/object-reorientation-generic-functions.html)। इसके अलावा, मैं जावा और कॉमन लिस्प की तुलना में अपनी [Google टेक टॉक] (http://www.youtube.com/watch?v=VeAdryYZ7ak) की अनुशंसा करता हूं। – spacemanaki
@ राफ आपको मेरी पोस्ट पढ़ने से मिलेगा कि सीखने की योजना अपने स्वयं के परिप्रेक्ष्य से, मेरे ओओ विचार पैटर्न को पोर्ट किए बिना, वही है जो मैं करने की कोशिश कर रहा हूं। मैं ओओ और योजना समाधान के उदाहरणों को एक ही समस्या के उदाहरणों को देखकर इस प्रक्रिया को बूटस्ट्रैप करने की उम्मीद कर रहा हूं, खासकर जब वे बहुत अलग दिखते हैं। – SuperElectric