2010-09-26 10 views
12

मुझे कोई जानकारी नहीं है कि सामान्य लिस्प के लिए पैटर्न मिलान फ़ंक्शन मौजूद है, फिर भी मुझे अपना स्वयं का कार्य करना है। मुझे लिस्प के बारे में कोई जानकारी नहीं है। क्या कोई लिस्प सीखने पर सिर-अप दे सकता है और सबसे महत्वपूर्ण बात यह है कि लिस्प में मिलान करने वाले पैटर्न के बारे में कैसे जाना है। मुझे एक पैटर्न और एक तथ्य पारित करना होगा और कहना होगा कि वे मेल खाते हैं या नहीं। एक उदाहरणसामान्य लिस्प में पैटर्न मिलान कैसे करें

(heroes (hitpoints=hp) (mana=m)) 

से मेल खाना चाहिए

(Morphling (hitpoints 435) (mana 260)) 

यह भी सक्षम होना चाहिए करने के लिए भी करता है, तो एक नंबर अधिक या कम है के संख्यात्मक तुलना करते हैं। जैसे कि एक और नायक मन मोर्फ़लिंग से कम है।

+0

पॉल ग्राहम [ऑन लिस्प] में उत्कृष्ट वर्णन (http://ep.yimg.com/ty/cdn/paulgraham/onlisp.pdf) (अध्याय 1 9, पी 246 एफ) –

उत्तर

15

विभिन्न लिस्प पुस्तकों में सरल पैटर्न मिलान कार्यक्षमता समझाया गया है।

और अन्य।

पुस्तकों के ऊपर लिस्प में मिलान करने वाले पैटर्न को लागू करने की व्याख्या करें।

पुस्तकालय मौजूद हैं, उदाहरण के लिए cl-match, Optima और various others

+0

मैं पुस्तकालय कार्यों का उपयोग नहीं कर सकता। मुझे बनाना है मेरा अपना। – gizgok

+4

@gizgok: विंस्टन/हॉर्न पुस्तक का उपयोग करके लिस्प सीखना एक अच्छी शुरुआत होगी। बोनस: यह पैटर्न मिलान लागू करने की व्याख्या करता है। –

2

मैं किसी भी सीखने आप स्कूल के लिए ऐसा करने के लिए (यदि संदर्भ में इस परियोजना जरूरी हो जाता है) की जरूरत है शॉर्ट सर्किट नहीं करना चाहते, लेकिन आप यह देखने के लिए कि अनुभवी लिस्पर यह कैसे करता है, आप cl-ppcre लाइब्रेरी, http://weitz.de/cl-ppcre/ का अध्ययन कर सकते हैं। आप स्रोत डाउनलोड कर सकते हैं और समझने के लिए इसका अध्ययन कर सकते हैं। मैं उपरोक्त वर्णित Norvig, http://norvig.com/paip.html द्वारा पुस्तक भी दूसरी बार करूंगा। आप उस पुस्तक से बहुत कुछ सीख सकते हैं।

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