clojure - लिस्प-1 और लिस्प-2 के बीच क्या अंतर है?




lisp lisp-2 (2)

मैंने लिस्प -1 और लिस्प -2 के बीच के अंतर को समझने की कोशिश की है और यह क्लोजर से कैसे संबंधित है लेकिन मैं अभी भी ठीक से समझ नहीं पा रहा हूं। क्या कोई मुझे प्रबुद्ध कर सकता है?


आप रिचर्ड गेब्रियल द्वारा इस paper को पढ़ना पसंद कर सकते हैं। यह उन मुद्दों का सारांश है जो Lisp समुदाय Lisp1 बनाम Lisp2 में चर्चा कर रहे थे। यह पहले कुछ खंडों में थोड़ा घना और धीमा गति से चल रहा है, लेकिन जब आप पिछली धारा 5 प्राप्त करते हैं तब तक पढ़ने के लिए बहुत आसान है।

असल में, लिस्प 1 में एक ऐसा वातावरण है जो मूल्यों के प्रतीक को मानचित्र करता है, और वे मान या तो "नियमित" या कार्य हो सकते हैं। Lisp2 में (कम से कम) दो नामस्थान हैं (प्रतीकों के पास उनके कार्य मूल्य के लिए एक स्लॉट है और एक नियमित मूल्य के लिए)। तो, लिस्प 2 में, आपके पास foo नामक फ़ंक्शन और foo नामक एक फ़ंक्शन हो सकता है, जबकि Lisp1 में, नाम foo केवल एक मान (फ़ंक्शन या अन्यथा) को संदर्भित कर सकता है।

दोनों के बीच कई व्यापार और स्वाद के अंतर हैं, लेकिन विवरण के लिए पेपर पढ़ें। ईसाई क्विननेक की पुस्तक, "लिस्प इन स्मॉल टुकड़े" में भी पाठ के माध्यम से बुने हुए मतभेदों पर चर्चा की गई है।


wikipedia मुताबिक:

चाहे कार्यों के लिए एक अलग नामस्थान एक लाभ है लिस्प समुदाय में विवाद का स्रोत है। इसे आमतौर पर लिस्प -1 बनाम लिस्प -2 बहस के रूप में जाना जाता है। लिस्प -1 -1 योजना के मॉडल को संदर्भित करता है और लिस्प -2 सामान्य कॉस्प लिस्प के मॉडल को संदर्भित करता है।

यह मूल रूप से इस बात के बारे में है कि चर और कार्यों को बिना किसी संघर्ष के समान नाम हो सकता है। क्लोजर एक लिस्प -1 है जिसका अर्थ यह है कि यह एक ही नाम को एक फ़ंक्शन और एक चर के लिए उपयोग करने की अनुमति नहीं देता है।







lisp-2