2010-04-06 11 views
60

मैंने एक आवेदन लिखने के माध्यम से अपने रास्ते को हल करने में सक्षम होने के लिए पर्याप्त सामान्य लिस्प को सीखा है। मैंने सेबेल के प्रैक्टिकल कॉमन लिस्पउदाहरण?

सामान्य लिस्प के मुहावरे, ताओ को समझने के लिए मुझे कौन से पुस्तकालयों या कार्यक्रमों को पढ़ना चाहिए?

उत्तर

36

CL-PPCRE अक्सर अच्छे कारण के लिए एक अच्छा उदाहरण के रूप में उद्धृत किया जाता है। असल में, संभवत: ईडी वीट्स की पुस्तकालयों में से कोई भी अच्छी पढ़ाई करेगा, लेकिन सीएल-पीपीसीआरई विशेष रूप से चालाक है और यह एक उपयोगी और प्रभावशाली पुस्तकालय है। इसके अलावा सीएल में ज्यादातर सीएल कार्यान्वयन लिखे गए हैं। सीएल के कुछ हिस्से को चुनने के लिए यह बहुत ही उत्पादक हो सकता है जिसे आम तौर पर सीएल में लागू किया जाता है और तुलना करें कि विभिन्न कार्यान्वयन इसे कैसे संभालते हैं। विशेष रूप से, बड़े उपयोगी मैक्रो सिस्टम के कुछ बेहतरीन उदाहरण मानक में चीजों के कार्यान्वयन हैं। लूप एक दिलचस्प पढ़ा है, या यदि आप वास्तव में महत्वाकांक्षी हैं तो आप CLOS के कुछ कार्यान्वयन की तुलना कर सकते हैं।

यदि कंप्यूटिंग के कुछ क्षेत्र हैं तो आप विशेष रूप से रुचि रखते हैं, इसका उल्लेख करने लायक हो सकता है, ताकि लोग इसकी सिफारिशों को तैयार कर सकें।

+1

[Sacla] (http://homepage1.nifty.com/bmonkey/lisp/sacla /index-en.html) सामान्य लिस्प में सामान्य लिस्प का एक बड़ा हिस्सा लागू करता है, इसलिए यह आपके सुझाव का एक अच्छा उदाहरण होगा। – jmbr

28

यह एक और पुस्तक है, तो यह आपके लिए ठीक जो खोज रहे हैं, लेकिन हो सकता पीटर Norvig के Paradigms in Artificial Intelligence Programming अच्छी तरह से लिखा, छोटा सा कॉमन लिस्प कार्यक्रमों की एक बहुत कुछ शामिल है। यह पूरी तरह से प्राकृतिक कोड नहीं है, खासकर पहले कुछ अध्यायों में, क्योंकि प्रैक्टिकल कॉमन लिस्प में कोड की तरह, यह आपको सीएल में प्रोग्राम करने के तरीके को पढ़ाने पर केंद्रित है, लेकिन यह अभी भी पढ़ने के लायक है। इसमें सामान्य लिस्प के शीर्ष पर अन्य भाषाओं का निर्माण करने के तरीकों के कुछ उत्कृष्ट उदाहरण भी शामिल हैं, और सीएल कार्यक्रमों के प्रदर्शन में सुधार करने के बारे में कुछ मूल्यवान सलाह है।

+1

यह एक उत्कृष्ट सिफारिश है। पुस्तक में कोड आम तौर पर बहुत अच्छा है, लेकिन Norvig और बताता है और चा से बेहतर कोड कैसे लिखना है अध्याय के लिए पटर। वह बुनियादी संस्करणों से शुरू होता है और फिर दिखाता है कि इसे कैसे सुधारें। –

+2

मैं निश्चित रूप से यह दूसरा होगा। पीएआईपी प्रोग्रामिंग के बारे में मेरी पसंदीदा किताबों में से एक है, हालांकि नाम थोड़ा भ्रामक है, आईएमएचओ। एक बात यह है कि मैं इसके बारे में कहूंगा कि शैली थोड़ा "पुरानी शैली" या अकादमिक प्रतीत होती है। हालांकि यह आलोचना नहीं है- ऐसा लगता है कि फैशनेबल सीएल मुहावरे पिछले 10-15 सालों में थोड़ा सा बदल गया है, लेकिन उस कोड के साथ कुछ भी गलत नहीं है जो फैशन का पालन नहीं करता है। –

11

अन्य सिफारिशें (पीएआईपी और सीएल-पीपीसीआरई) उत्कृष्ट हैं। मैं Alexandria के कोड से परिचित होने और GBBopen पर भी विचार करने का सुझाव दूंगा।

+0

मैंने कभी भी GBBopen के बारे में नहीं सुना होगा - लिंक के लिए धन्यवाद! –

2

मुझे एसबीसीएल कोड पसंद है।

2

एकमात्र चीज जो मैं पेश करूंगा वह कार्यक्रम है। यही मैंने किया था।

मैंने दो चीजें कीं। एक मैंने एक समस्या का सामना किया जिसे मैं परिचित था, एक इकाई परीक्षण ढांचे और परीक्षण सूट शामिल करने के लिए इसे विस्तारित किया। मैक्रो लेखन की समझ प्राप्त करने के लिए।

दूसरी बात जो मैंने किया वह सीएल में मूल वस्तुओं के साथ खेल रहा था। मैक्रोज़, बंद, और शैली।

इसके अलावा लिस्पर्स से अपने कोड के बारे में प्रतिक्रिया प्राप्त करने के बारे में भी मत भूलना।

(defun ugly-lisp-code?()())

+2

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

+0

हालांकि, इसे 'अच्छा' करने से भी अधिक है। अनिवार्य से घोषणात्मक "अच्छा" में बदलाव की कोशिश करें। – Gutzofter

8

Metaobject प्रोटोकॉल की कला - सबसे सुंदर कोड अब तक लिखी साथ एक पुस्तक है।

3

LISP (छोटे टुकड़े में लिस्प) एक साफ पुस्तक है; क्लोजेट (छोटे ओबेक्ट सिस्टम) और कुछ कंपाइलर सामान दिखाता है। संदेह के बिना, norvig की किताब भयानक है।

मुझे वास्तव में "बिल्डिंग समस्या निवारक" भी पसंद है लेकिन कोड थोड़ा सा रफ है। मैं पैरामीटर सूची में गतिशील-स्कोप्ड चर को बाध्य करने के लिए उपयोग नहीं किया जाता है। लेकिन यह भयानक नेट "पूर्व संकलन" करने की कोशिश कर रहे में बहुत मज़ेदार बनाने के लिए बनाया गया।यह पुस्तक नॉर्विग के कुछ कोडों के लिए दृष्टिकोण प्रदान करती है; मुझे अभी भी लगता है कि Norvigs कोड बहुत "neater और cleaner" कोड है (पढ़ने और समझने में आसान है, और अभी भी रचनात्मक)।

"बिल्डिंग समस्या समाधानकर्ताओं" की तरह एक चेतावनी लेबल के साथ आना चाहिए "आप करने वाले हैं कुछ aspiren (सपा) की जरूरत है। यह बिजली का एक बोल्ट की तरह महसूस मुझे सिर में मारा जब मैं अंत में " समझा "आरएमएस और sussmans 'निर्भरता निर्देशित बैकट्रैकिंग। पीडीआई संकलित भी शानदार था। उत्कृष्ट सामान। मैं बस चाहता हूं कि मैं इसे सभी को हटा सकता हूं ...

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