haw*_*eye 16 scheme symbols clojure common-lisp
Common Lisp中你称之为原子和符号之间有什么区别吗?
这些差异是否扩展到Lisp系列中的其他语言?
(我知道原子在Clojure中有不同的含义,但我对符号的边界感兴趣.)
'atom'通常可以从列表处理中看到.在Common Lisp中,某些东西要么是非空列表,要么是原子.在过去,原子也被称为"原子符号",这是一个略有不同的东西.现在Common Lisp中的原子不仅是符号,还有其他不是cons单元的东西(例如:字符串,数字,哈希表,流,......).
如果某些东西不是原子(是一种缺点),则可以使用CAR,CDR,FIRST和REST操作.
所以atom是一组数据结构.符号是某种数据结构,也恰好是一个原子.