मुझे लिस्प के साथ कैसे शुरू करना चाहिए? [बन्द है]


48

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

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

मैं सोच रहा हूं "बोली ए का उपयोग करें, आईडीई बी का उपयोग करें, पृष्ठ सी के निर्देशों का पालन करें, परामर्शदाता डी का उपयोग करने के बाद अपने संन्यासी से सवाल करें।" मैं यह जानना चाहूंगा कि यहाँ के लोग A, B, C और शायद D. के लिए मानों का एक इष्टतम सेट मानते हैं। इसके अलावा, इस तरह की शक्तिशाली भाषा सीखने के सापेक्ष योग्यता पर कुछ चर्चा, कहना, एक रेल बनना विशेषज्ञ।

बस कुछ और विवरण जोड़ने के लिए, मैं मैकओएस (या लिनक्स वीएम) पर विकसित कर रहा हूं - कोई विंडोज आधारित दृष्टिकोण आवश्यक नहीं होगा, धन्यवाद।

सिर्फ उन लोगों द्वारा ब्राउज़ करने के लिए नोट्स

मैं इस सवाल को कुछ समय के लिए खुला रखने जा रहा हूं ताकि मैं उन्हें पता लगाने में सक्षम होने के बाद सुझावों पर प्रतिक्रिया दे सकूं। यदि आप ऐसा कर रहे हैं कि आप ब्राउज़ कर रहे हैं और आपको लगता है कि कुछ जोड़ना है, तो कृपया करें। मैं वास्तव में आपकी प्रतिक्रिया का स्वागत करूंगा।

दिलचस्प लिंक

मान लें कि आप जावा पृष्ठभूमि से लिस्प में आ रहे हैं, तो लिंक का यह सेट आपको जल्दी शुरू कर देगा।

  1. लिस्प ( वीडियोकॉस्ट ) को एकीकृत करने के लिए इंटेलीज के ला क्लोजर प्लगइन का उपयोग करना
  2. वेब के लिए लिस्प
  3. प्रैक्टिकल कॉमन लिस्प का ऑनलाइन संस्करण (c / o फ्रैंक शीयर)
  4. लिस्प की एक (+ (+ very quirky) game based)तरह से भूमि लेकिन यह सब इतना सीधा बनाता है
  5. MacOS पर क्लोजर और उदात्त 2 स्थापित करें जो एक उत्कृष्ट आरंभ करने वाला मार्गदर्शक है
  6. को देखो कार्रवाई में Clojure किताब। मेरे लिए काम किया।

1
पॉल ग्राहम द्वारा "एएनएसआई कॉमन लिस्प" और "ऑन लिस्प" पढ़कर।
डुओ

2
लिस्प चट्टानों पर (मैंने एएनएसआई कॉमन लिस्प नहीं पढ़ा है), लेकिन एक इंट्रो पुस्तक के रूप में, प्रैक्टिकल कॉमन लिस्प> ऑन लिस्प। IMO, कम से कम। (मैं पहले लिस्प पर पढ़ता हूं, लेकिन पीसीएल मुझे सीएल में मिला था।)
फ्रैंक शीयर

कहना है कि मैं इस समय पीसीएल पढ़ने का आनंद ले रहा हूं - भाषा के इतिहास के बारे में उत्कृष्ट फ़ुटनोट्स वास्तव में समुदाय के लिए एक अनुभव देते हैं
गैरी रोवे

1
लिस्प्स से मेरा पहला परिचय प्रसिद्ध प्रोग्राम और कंप्यूटर प्रोग्राम की व्याख्या देख रहा था। तब मैंने जावा प्रोग्रामर्स के लिए रिच हिकी के क्लोजर देखा। मैं इन वीडियो को एक अच्छे परिचय के रूप में सुझाऊंगा।
वूहोइनटेड

जवाबों:


18

यह संभवतः अधिकांश लोगों की सिफारिशों के लिए काउंटर है, लेकिन एमएसीएस को शुरू करने के लिए स्पष्ट है, जब तक कि आप इसे पहले से ही नहीं जानते। खासकर यदि आप आधुनिक आईडीई / संपादकों के लिए उपयोग किए जाते हैं।

मैं अनुभव से बोल रहा हूं; मैंने Emacs के साथ शुरुआत करने की कोशिश की, लेकिन एक ही समय में भाषा और संपादक को सीखना वास्तव में मुझे निराश कर रहा था (विशेषकर चूंकि Emacs अन्य उपकरणों से बहुत अलग है)। मैंने इसे समाप्त करना शुरू कर दिया, पीएलटी योजना (अब रैकेट) के साथ शुरुआत करना, जो एक तुलनात्मक रूप से सरल क्रॉस-प्लेटफॉर्म आईडीई, एक केंद्रीकृत पैकेज रिपॉजिटरी और शानदार डॉक्स ( विशेष रूप से वेब विकास के लिए एक मध्यवर्ती ट्यूटोरियल सहित ) के साथ आता है। चूंकि मुझे लिस्प पर एक साफ पकड़ मिल गई थी, इसलिए मैं एमएसीएस में वापस जा रहा था, प्रैक्टिकल कॉमन लिस्प और ज़ाह के एलिस्प गाइड के रास्ते ईएल / सीएल उठा रहा था।। मूल रूप से, जैसा कि मैं इसे देखता हूं, आपको Emacs को प्रभावी ढंग से उपयोग करने से पहले एक लिस्प को जानना होगा, और CL / Elisp के साथ बहुत प्रभावी होने के लिए आपको Emacs को जानना होगा। इसका मतलब है कि आप या तो स्कीम उठा सकते हैं, या पहले किसी अन्य संपादक के माध्यम से कॉमन लिस्प सीख सकते हैं (लिस्पवर्क्स व्यक्तिगत, संभवतः)।

यदि आप पहले से ही Emacs को जानते हैं, तो हाँ Elisp एक प्राकृतिक कदम है (हालाँकि आप जानते हैं कि बिना Emacs का उपयोग किए बिना Elisp को जानना सबसे पहले मेरे से परे है)।

YMMV बेशक, यह सिर्फ मैं क्या मदद मिली है।

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


जब मैंने शुरुआत की तो मुझे पहले से ही एमएसीएस में कुछ बुनियादी प्रवाह था। Emacs में बहुत ही कठिन सीखने की अवस्था होती है!
फ्रैंक शीयर

+1 क्योंकि Emacs के साथ मेरे पिछले अनुभव अद्भुत से कम रहे हैं (जो मुझे इसे जानना नहीं चाहते हैं और लिस्प बिल्ट-इन - जैसे कि थोरबॉर्न ने बताया है - इसका मतलब है कि मुझे अपने दिन के काम में अपने लिस्प ज्ञान का उपयोग करना है)
गैरी रोवे

3
@ थोरबजोरन रावन एंडरसन - ऐसा किया। दो बार। फिर भी अपने आप को लगातार CUA शॉर्टकट (जो Emacs में डिफ़ॉल्ट रूप से बंद हैं) का उपयोग करते हुए पाया। सबसे खराब मेरे संपादक को आकस्मिक कटौती + इच्छित प्रतिलिपि ( C-x C-c) के साथ बंद कर रहा था । मैं मौत के लिए Emacs प्यार करता हूँ, और काफी उस में रहते हैं अब, लेकिन एहसास मांसपेशी स्मृति के वर्ष पहली बार में, आप लड़ रहे हैं कह रही है कि आप C-sहै Save, नहीं Searchहै और कहा कि Undoहै C-z। मैं किसी ऐसे व्यक्ति को हताशा की सलाह नहीं दूंगा जिसका इरादा लिस्प सीख रहा है। पहले भाषा सीखें, महसूस करें कि आप इसे प्यार करते हैं, फिर अपने हाथों को स्पष्ट लक्ष्य के साथ लड़ना शुरू करें।
इनामाथी

1
@ इनिमा, अच्छी शक्ति एक मूल्य के साथ आती है, और एमएसीएस बाइंड सीयूए को इतना दोष देती है कि आईबीएम :) इसके अलावा Ctrl-C + Ctrl-v

1
@Geoffrey van Wyk - PLT के साथ शुरू करने के लिए बहुत अच्छा है, लेकिन कुछ सीमाएँ हैं जिन्हें आप थोड़ी देर बाद चलाते हैं जिसने मुझे अपने बीयरिंग मिलने के बाद CL / Emacs पर स्विच किया। YMMV। मैंने थोड़ी देर पहले एक राइट-अप किया था, यदि आप विवरण में रुचि रखते हैं langnostic.blogspot.com/2010/09/… जहाँ तक लिस्पवर्क्स प्रश्न; मेरा मानना ​​है कि वे बड़ी टीमों (जहां कंपनी उपकरण खरीदती है) या सलाहकार (जो आमतौर पर पर्याप्त है कि मूल्य टैग उचित है) को लक्षित करते हैं। यकीन नहीं है कि यह उनके लिए कैसे काम कर रहा है, लेकिन यह वह तरीका नहीं है जो मैंने उठाया होगा।
इनामाथी

10

खैर, आप SICP को पढ़कर दो पक्षियों को मार सकते हैं ; एक सीख रहा है LISP (मेरा मतलब है कि योजना लिस्प की एक बोली है) और अन्य कैसे कार्यक्रम.Period करने के लिए महान अंतर्दृष्टि है !!


1
लिंक के लिए +1 - एक त्वरित स्कैन के माध्यम से यह पता चलता है कि यह बहुत विस्तृत है, बल्कि शुष्क है (अकादमिक पढ़ें)। मैं पाठ पढ़ते समय "विशेषज्ञों की आवाज़" का बहुत बड़ा प्रशंसक हूं, लेकिन यह एक अच्छा समग्र संदर्भ लगता है।
गैरी रोवे

10

कॉनराड बार्स्की के पास एक महान ट्यूटोरियल है जिसे लिस्प में कास्टिंग SPEL कहा जाता है ( SPEL मैक्रोज़ के लिए उनका संक्षिप्त नाम है)। इसमें एक सरल साहसिक-प्रकार का खेल बनाना शामिल है, और लिस्प मैक्रोज़ में कूदता है। वह एक परिचयात्मक पुस्तक पर भी काम कर रहे हैं जो अब उपलब्ध है:

एक समय में एक खेल, लिस्प को प्रोग्राम करना सीखें

और, सामग्री की तालिका से:

  • अपना खुद का वेब सर्वर बनाएं, और ब्राउज़र-आधारित गेम खेलने के लिए इसका उपयोग करें

मैं नहीं जानता कि यह वेब विकास के लिए क्या है (जैसा कि HTML पृष्ठों में) लिस्प का उपयोग करके। :)

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


8

भाषा का एक अच्छा बुनियादी परिचय पाने के लिए, पीटर सीबेल के प्रैक्टिकल कॉमन लिस्प को पढ़ें । पुस्तक की उत्कृष्ट।

Emacs और SLIME सेट करना एक नौसिखिया के लिए मुश्किल हो सकता है, जहां "मुश्किल" आपके OS के आधार पर परिमाण में भिन्न होता है। हमेशा की तरह, विंडोज को स्टिक का छोटा अंत मिलता है, लेकिन लोगों ने कठिन हिस्सा किया है और इसे लिखा है (SBCL, Emacs, SLIME)।

एक बार जब यह रास्ता निकल जाता है, तो ग्रह लिस्प ने हाल ही में हंचेंट और नगनेक्स की स्थापना करने के तरीके का वर्णन करते हुए एक लेख का संदर्भ दिया।

OS- विशिष्ट संपादन: MCLIDE शुरू करने के लिए एक अच्छी जगह हो सकती है। मैंने इसे स्थापित किया है, लेकिन वास्तव में इसका उपयोग करने का मौका नहीं मिला है, इसलिए मैं इसके बारे में कुछ भी उपयोगी नहीं कह सकता। यह निश्चित रूप से दिलचस्प लग रहा है!

संपादित करें: ग्रहण में Cusp प्लगइन भी है।


6

पहले से ही बहुत सारे शानदार जवाब हैं, लेकिन यह मानते हुए कि आप एक लिस्प के साथ वेब विकास में सबसे पहले सिर डालना चाहते हैं, मेरे पास कुछ और विचार हैं।

क्लोजर पहला लिस्प है जिसे मैंने वास्तव में उत्कृष्ट पूर्ण-स्टैक वेब फ्रेमवर्क के लिए देखा है जो प्राइम-टाइम के लिए तैयार हैं।

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

यदि आपने गौर नहीं किया है, तो मैंने पूरे वेब स्टैक को कवर किया है और यह सब क्लोजर में लिखा गया है।

मैं क्लजुरे को तब के कॉमन लिस्प के साथ शुरू करने में थोड़ा आसान बनाता हूं, जिसमें स्कीम की तुलना में कहीं बेहतर फीचर सेट / लाइब्रेरी सपोर्ट है।

यदि आप एक जावा बैकग्राउंड से आ रहे हैं, तो इसमें JVM पर चलने का अतिरिक्त लाभ है, जो आपको जरूरत पड़ने पर पूरे जावा stdlib तक पहुंच प्रदान करता है।

उपलब्ध प्रलेखन isa कार्य-में-प्रगति, जैसा कि स्वयं चौखटे हैं। लेकिन यहाँ एक बहुत अच्छा ट्यूटोरियल है।

जहां तक ​​संपादकों का कहना है ... यदि आप विम के साथ सहज हैं, तो आप एसएलआईएमवी के साथ विम का उपयोग कर सकते हैं। यदि आप emacs पसंद करते हैं, तो emacs / SLIME ठीक है। क्लोजर (या तो मुझे बताया गया है) के लिए बहुत अच्छा ग्रहण और नेटबीन्स समर्थन है, लेकिन मैं आमतौर पर टेक्स्टमैट का उपयोग करता हूं (हालांकि उदात्त पाठ 2 जल्दी से मेरी पसंद का संपादक बन रहा है)। मुझे पता है कि मैं थोड़ा लिस्प जादू पर याद कर रहा हूं और अधिक एकीकृत वातावरण का उपयोग नहीं कर रहा हूं, लेकिन मैं अपने संपादक और आरईपीएल के बीच स्वैप करने के लिए खुश हूं; आपकी माइलेज भिन्न हो सकती है।

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

हैप्पी लिस्पिंग!



5

एक अन्य टिप्पणीकार, इनामाथी ने कुछ दिन पहले इस पुस्तक की सिफारिश की: द लिटिल स्कीमर

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

यह एक उन्नत पाठ नहीं है, लेकिन भाषा के सिद्धांतों को स्थापित करने के लिए एक मिशन है और यह वास्तव में क्या है, इसके बारे में कैसे सोचना है। मेरा मानना ​​है कि यह LISP के लिए एक उत्कृष्ट स्टार्टर होगा।

एनबी। प्रोग्रामर कॉम्पिटीशन मैट्रिक्स वास्तव में चीजों की योग्यता के शीर्ष स्तर में इस पुस्तक का उल्लेख करने का उल्लेख करता है। (पुस्तकें अनुभाग देखें)


4

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

यह आपको वास्तव में यूएसई का उपयोग करने की अनुमति देगा जो आप दैनिक सेटिंग में सीखते हैं, यदि आप दिन के दौरान एक सादे संपादक का उपयोग करते हैं।


+1 "जो आप सीखते हैं उसका उपयोग करें" सलाह के लिए। मैं दिन के काम के लिए एक Intellij bod हूं, लेकिन मैं सिर्फ हमारे बेहद प्रतिबंधित सॉफ्टवेयर वातावरण में emacs पर अपने पंजे प्राप्त करने में सक्षम हो सकता हूं।
गैरी रोवे

3

यदि आप एक मैक पर विकसित हो रहे हैं, तो आप क्लोज़र सीएल आज़माना चाह सकते हैं । यह एक IDE के साथ आता है जिसमें Emacs- कम्पेटिबल कीस्ट्रोक्स होते हैं, और ऑब्जेक्टिव C के लिए एक ब्रिज होता है, ताकि आप कोको एप्लीकेशन लिख सकें।

इसके अलावा, मैंने प्रैक्टिकल कॉमन लिस्प पढ़ा है, लेकिन सक्सेसफुल लिस्प को मददगार भी पाया ।

अंत में, आपकी ओर से कुछ धैर्य को पुरस्कृत किया जाएगा। उत्पादकता और मामूली जीत बहुत जल्दी आ जाएगी, लेकिन बड़ी जीत में थोड़ा समय लग सकता है।


2

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


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