यहां थोड़ा सा ऐतिहासिक संदर्भ है (मैं अभी तक पैदा नहीं हुआ हूं जब वर्णित घटनाएं हुई थीं, इसलिए शायद कोई और जानकार मुझे सही करेगा। यह सब पुराने लेखों और कुछ पुस्तकों को पढ़ने से है)।
डिस्क्लेमर के साथ तिरस्कृत होने के बाद, ऐसा लगता है कि फोरट्रान बनाम लिस्प के दिनों में "प्रतीकात्मक" एक तरह का उहापोह था जैसा कि "वस्तु उन्मुख" आज है। Ie कार्यक्रमों को आम तौर पर केवल विशाल गणितीय सूत्रों के रूप में देखा जाता था, जहां संख्याओं को अंततः प्लग किया जाएगा और संख्याओं के लिए प्लेसहोल्डर अपरिवर्तित थे। एक कार्यक्रम में निहित सभी प्रतीकात्मक जानकारी जैसे ही उस कार्यक्रम को चलाने, संकलित या व्याख्या करने के बाद गायब हो जाएगी। लिस्प की नवीनता यह थी कि यह एक कार्यक्रम को चलाने, संकलित या व्याख्या करने के बाद भी प्रतीकों को बनाए रखने की अनुमति देता था। इसने इस तरह की शब्दावली को "प्रतीकात्मक बीजगणित" के रूप में प्रेरित किया (जैसा कि बीजगणितीय सूत्रों पर हेरफेर के रूप में कागज / ब्लैकबोर्ड पर किया गया था बजाय प्रत्यक्ष गणना के)। इस (और अन्य प्रतीकात्मक चीजों) का समर्थन करने के लिए प्रतीकों को एक नाम और कुछ गुणों से सुसज्जित किया जाना था। गैर-प्रतीकात्मक दृष्टिकोण से, कोई कह सकता है कि "प्रतीकों को केवल संकेतकर्ता कहा जाता है", और जबकि यह सच नहीं है, अगर कुछ भी वे बिंदुओं से संरचना के अधिक हैं, लेकिन व्यावहारिक उद्देश्यों के लिए, प्रतीक बाईं ओर के डिजाइनर हैं एक चर-मूल्य जोड़ी के हाथ की ओर। यह भी देखने के लिए संभव बनाता हैsymbol-value
गैर-प्रतीकात्मक भाषाओं में पॉइंटर डेरेफेरिंग के रूप में कार्य करते हैं।
आधुनिक लिस्प्स इस मायने में भिन्न होते हैं कि एक प्रतीक के साथ कितने मूल्य जुड़े हो सकते हैं (मान लीजिए कि आपके पास कई मेमोरी स्टैक / ढेर के साथ एक गैर-प्रतीकात्मक भाषा थी, आप एक ऐसी स्थिति की कल्पना कर सकते हैं जहां एक ही पॉइंटर का अर्थ है जब विभिन्न स्टैक्स के संदर्भ में व्याख्या की गई हो ढेर)। तो, Lisp2 भाषाएं (Emacs Lisp ऐसी ही एक भाषा है) में फ़ंक्शंस और वेरिएबल्स के लिए अलग-अलग स्टोरेज है, यही कारण है कि वहाँ भी है symbol-function
, जो "एक फ़ंक्शन स्टोरेज की ओर इशारा करते पॉइरेफेरेंस" है। स्कीम में यह विशेष भंडारण नहीं है और क्लोजर AFAIK, के पास न तो ऐसा है और न ही symbol-plist
।