在我的理解中,lisp中的所有东西都是原子或一对.
字符串被视为原子吗?
如果字符串只是字符序列或字符串,lisp编译器如何知道?
是什么区别foo,'foo并"foo"带来什么影响?
在"原子"被定义为"不配对"的意义上,你的第一个陈述是微不足道的.
因此,字符串绝对是一个原子:
(atom "a")
==> T
Run Code Online (Sandbox Code Playgroud)
类string
实际上是定义为vector
的characterS(或它的亚型):
字符串是一个专用向量,其元素是字符类型或字符类型的子类型.当用作对象创建的类型说明符时,字符串表示(向量字符).
面对共同的理解,即"集合"不能成为"原子".然而,在Lisp中,数组,向量,哈希表,结构,类对象都是原子.理由(除了古代历史)是implementation(eval)不必查看原子内部 - 它们自我评估(符号除外).
foo是一个
symbol,
'foo是相同的(quote foo),"foo"是一个字符串.
你应该看一下基本的lisp教科书(例如,"Practical Common Lisp"或"ANSI Common Lisp").
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |