स्कीम के बजाय क्लोजर में एसआईसीपी को मंजूरी देना


11

मैं एक सॉफ्टवेयर इंजीनियरिंग कार्यक्रम में तीसरे वर्ष का स्नातक छात्र हूं, और मैंने इस सभी सॉफ्टवेयर हम इंजीनियर के पीछे सिद्धांतों की गहरी और अधिक मौलिक समझ हासिल करने के लिए एक सलाहकार के लिए SICP को पढ़ने का विचार लाया।

उन्होंने पुस्तक को पूरा करने के लिए स्कीम नहीं सीखने का सुझाव दिया (क्योंकि यह लिस्प की आधुनिक बोलियों की तरह सामान्य नहीं है) लेकिन इसके बजाय क्लोज़र में अभ्यास करने के लिए कहा।

यह पहले से ही कठिन पुस्तक है, अगर मैं किताब के अभ्यासों को और अधिक आधुनिक क्लोज़र में करने का प्रयास करता हूं, तो यह कैसे काम करेगा? उदाहरण के लिए, मुझे कोई वास्तविक समाधान नहीं मिल रहा है, वे योजना के लिए जो वाक्यविन्यास सिखाते हैं वह अलग है, आदि।

जवाबों:


14

विश्वविद्यालय में अपने पहले वर्ष में मैंने जो पहला प्रोग्रामिंग कोर्स लिया था, वह SICP (जो कि 1988 था) का उपयोग कर रहा था। हालाँकि, मुझे आपके जैसी ही समस्या थी: मेरे अपने कंप्यूटर (वास्तव में एक कमोडोर Amiga) के लिए, उस समय कोई स्कीम लागू नहीं थी, केवल एक अलग लिस्प बोली (मुझे इसका नाम याद नहीं है)।

हालाँकि, लिस्प के लचीलेपन को देखते हुए, यह केवल कुछ लिपियों में लापता लिस्प मैक्रोज़ और फ़ंक्शंस को जोड़कर "सिंटैक्स" स्कीम सिंटैक्स के लिए बहुत सरल था। यह वास्तव में पाठ्यक्रम के दौरान आवश्यक अध्याय 1 से 3 तक के सभी अभ्यासों को लागू करने के लिए पर्याप्त था (ध्यान दें कि एसआईसीपी को वास्तव में पूर्ण योजना स्टैक की आवश्यकता नहीं है, एक छोटा सबसेट जिसकी आपको आवश्यकता है)।

तो चूंकि क्लजुर एक आधुनिक लिस्प बोली है, इसलिए मुझे लगता है कि आप कुछ ऐसा ही कर सकते हैं, जो आपको स्कीम या क्लोजर या दोनों के मिश्रण में चीजों को लिखने के लिए पूरी तरह से स्वतंत्र विकल्प देता है।

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


6
केवल एक ही मुद्दा मुझे समझ में आता है कि क्लोजर में कमी है। 1. TCO ( recurकेवल टेल रिकर्सन संभालती है , सामान्य कॉल नहीं) और 2. call-with-current-continuationअध्याय 4 के लिए जिसकी कमी है ।
डैनियल ग्रैजर

2
@jozefg: मुझे लगता है कि यदि ओपी स्वयं अध्याय 1-3 के माध्यम से सफलतापूर्वक प्राप्त करता है, तो वह शायद उस बिंदु पर सबसे अधिक होगा जहां वह क्लोजर और स्कीम के बीच किसी भी अधिक अंतर के बारे में शिकायत नहीं करेगा ;-)
डॉक्टर ब्राउन

@DocBrown अपने टिप्पणी में 1-3 के बारे में संपादित करने पर विचार करने के लिए ऊपर दिए गए टिप्पणी में स्पष्टीकरण पर विचार करें (और संभवतः अध्याय 4 के साथ मुद्दों को समझाते हुए, अगर आप इन पर चर्चा करने से सहमत हैं )
gnat

@gnat: टिप्पणी निश्चित रूप से सही है, लेकिन IMHO थोड़ा सा मजाकिया है। मेरे उत्तर का महत्वपूर्ण हिस्सा अंतिम पैराग्राफ है।
डॉक्टर ब्राउन

0

मैंने इस साइट को खोजने के बाद आपका प्रश्न पाया, जो ऐसा दिखता है कि यह आपकी गली के ऊपर है (हालाँकि आपको यह मिल गया है या बीच के महीनों में एक विकल्प मिल सकता है): क्लोजर में एसआईसीपी

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