2012-01-25 10 views
11

चूंकि (सूची 1 2 3) उपज (1 2 3) और (उद्धरण (1 2 3)) उपज (1 2 3), दोनों होने के लिए तर्क क्या है?योजना में दोनों सूची और उद्धरण क्यों हैं?

चूंकि योजना अन्यथा इतनी अतिरिक्त है, इनके कुछ अर्थपूर्ण अंतर होना चाहिए। वो क्या है?

+0

"चूंकि योजना अन्यथा इतनी अतिरिक्त है" - आपको यह जानने में रुचि हो सकती है कि 'सूची' वास्तव में एक व्युत्पन्न रूप है जिसे योजना द्वारा परिभाषित किया जा सकता है:' (परिभाषित करें (सूची। Objs) objs) ' –

उत्तर

27

उदाहरण में आपने quote और list का उल्लेख किया है, वही परिणाम है क्योंकि न्यूमेरिक स्थिरांक स्वयं का मूल्यांकन करते हैं। आप भाव सूची में नहीं है कि स्व-मूल्यांकन कर रहे हैं का उपयोग करते हैं (चर या समारोह कॉल कहते हैं), तो आप अंतर देखेंगे:

(quote (a b c)) आप एक सूची है कि प्रतीकों a, b और c जबकि (list a b c) शामिल दे देंगे होगा आपको एक सूची दें जिसमें वेरिएबल के मान a, b और c (या यदि कोई चर मौजूद नहीं है तो एक त्रुटि)।

+0

ठीक है मैं देखता हूं उस। धन्यवाद। – drb

5

सूची एक सूची बनाता है, इसलिए (सूची 1 2 3) एक तीन-तत्व सूची बनाता है।

उद्धरण मूल्यांकन रोकता है। उद्धरण के बिना, अभिव्यक्ति (1 2 3) का मूल्यांकन 1 और 3 के साथ बुलाए गए फ़ंक्शन 1 के रूप में किया जाएगा, जो स्पष्ट रूप से कोई समझ नहीं लेता है। उद्धरण मूल्यांकन को रोकता है और केवल सूची देता है, जो शाब्दिक रूप से अपने बाहरी प्रिंट करने योग्य रूप में निर्दिष्ट है (1 2 3)।

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