मैंने लिस्प -1 और लिस्प -2 के बीच के अंतर को समझने की कोशिश की है और यह क्लोजर से कैसे संबंधित है लेकिन मुझे अभी भी ठीक से समझ नहीं आया है। क्या कोई मुझे बता सकता है?
मैंने लिस्प -1 और लिस्प -2 के बीच के अंतर को समझने की कोशिश की है और यह क्लोजर से कैसे संबंधित है लेकिन मुझे अभी भी ठीक से समझ नहीं आया है। क्या कोई मुझे बता सकता है?
जवाबों:
विकिपीडिया के अनुसार :
क्या फ़ंक्शंस के लिए एक अलग नामस्थान है, लिस्प समुदाय में विवाद का एक स्रोत है। इसे आमतौर पर लिस्प -1 बनाम लिस्प -2 बहस के रूप में जाना जाता है। लिस्प -1 स्कीम के मॉडल को दर्शाता है और लिस्प -2 कॉमन लिस्प के मॉडल को संदर्भित करता है।
यह मूल रूप से है कि क्या चर और फ़ंक्शंस बिना टकराव के एक ही नाम हो सकते हैं। क्लोजर एक लिस्प -1 है जिसका अर्थ है कि यह एक ही नाम को एक फ़ंक्शन और एक चर के लिए एक साथ उपयोग करने की अनुमति नहीं देता है।
list
अक्सर एक फ़ंक्शन पैरामीटर के रूप में उपयोग किया जाता है और कोई भी चीज़ नहीं होती है, OMG जो (list ...)
एक मानक फ़ंक्शन के बाद से इतना भ्रमित है। list
एक चर के रूप में कई फ़ंक्शन फ़ंक्शन का उपयोग नहीं करते list
हैं, या उस चर के पास इसका उपयोग नहीं करते हैं। जब ऐसा होता है तब भी यह बहुत बुरा नहीं है (list foo list)
:। यह किसी वाक्य से अधिक भ्रामक नहीं है जैसे "अच्छी लड़ाई लड़ें" जहां एक ही शब्द संज्ञा और क्रिया के रूप में दिखाई देता है।
आप रिचर्ड गेब्रियल के इस पत्र को पढ़ना पसंद कर सकते हैं । यह उन मुद्दों का एक सारांश है जो लिस्प 1 बनाम लिस्प 2 में लिस्प समुदाय पर चर्चा कर रहे थे। यह पहले कुछ सेक्शन में थोड़ा घना और धीमा है, लेकिन जब आप पिछले सेक्शन 5 को प्राप्त करते हैं, तब तक पढ़ना बहुत आसान होता है।
मूल रूप से, Lisp1 में एक एकल वातावरण होता है जो प्रतीकों को मानों के लिए मैप करता है, और वे मान या तो "नियमित" या फ़ंक्शंस हो सकते हैं। Lisp2 में (कम से कम) दो नामस्थान हैं (प्रतीकों में एक फ़ंक्शन मान के लिए एक स्लॉट है और एक नियमित मूल्य के लिए है)। तो, Lisp2 में, आपके पास foo नाम का एक फंक्शन और foo नाम का एक मान हो सकता है, जबकि Lisp1 में, नाम फू केवल एक मान (फ़ंक्शन या अन्यथा) को संदर्भित कर सकता है।
दोनों के बीच कई ट्रेडऑफ और स्वाद के अंतर हैं, लेकिन विवरण के लिए पेपर पढ़ें। क्रिश्चियन क्विनेक की पुस्तक, "लिस्प इन स्मॉल पीसेज" में भी पाठ के माध्यम से बुने गए मतभेदों की चर्चा है।
funcall
और function
ऑपरेटरों से भरा सामान नहीं रखना है । ये एक लिस्प -1 में गायब हो जाते हैं।