İşte biraz tarihsel referans (tarif edilen olaylar gerçekleştiğinde henüz doğmadım, belki daha bilgili biri beni düzeltir. Bütün bunlar eski makaleleri ve bazı kitapları okumaktan kaynaklanıyor).
Feragatnameden vazgeçtikten sonra, Fortran vs Lisp günlerinde geri dönüyor gibi görünüyor "sembolik" bugün "nesne yönelimli" olduğu için bir tür terimdi. Yani programlar genellikle sayıların nihayetinde takılacağı ve sayıların yer tutucularının önemsiz olduğu büyük matematiksel formüller olarak görülüyordu. Bir programda yer alan tüm sembolik bilgiler, program çalıştırıldığı, derlendiği veya yorumlandığı anda yok olur. Lisp'in yeniliği, sembollerin bir programda çalıştırıldıktan, derlendikten veya yorumlandıktan sonra bile devam etmesine izin vermesiydi. Bu, "sembolik cebir" gibi terminolojiye ilham verdi (cebirsel formüllerde, doğrudan hesaplama yerine kağıt / tahtada yapılan manipülasyonda olduğu gibi). Bunu (ve diğer sembolik şeyleri) desteklemek için sembollerin bir isim ve bazı özellikleri ile donatılması gerekiyordu. Sembolik olmayan bir bakış açısından, "semboller sadece işaretçiler olarak adlandırılır" diyebilir ve bu doğru olmasa da, eğer herhangi bir şey yapılara daha çok işaret ederse, ancak pratik amaçlar için, semboller solun belirleyicisidir. değişken değer çiftinin el tarafı. Bu aynı zamandasymbol-value
sembolik olmayan dillerde işaretçi kaydı silme işlevi görür.
Modern Lisps, bir sembolle ne kadar değer ilişkilendirilebileceğine göre değişir (birden fazla bellek yığınına / yığınına sahip sembolik olmayan bir diliniz olduğunu varsayalım, farklı yığınlar bağlamında yorumlandığında aynı işaretçinin anlamı olduğu bir durum hayal edebilirsiniz. yığın). Yani, Lisp2 dilleri (Emacs Lisp böyle bir dildir) işlevler ve değişkenler için ayrı bir depolama alanına sahiptir, bu yüzden de symbol-function
"bir işlev deposuna işaret eden bir işaretçi dereferences" dır . Şema bu özel depoya sahip değil ve Clojure AFAIK, ne bu ne de var symbol-plist
.