字符串的内部表示
Internal representation of string
在我的理解中,lisp 中的一切都是一个原子或一对。
字符串算作原子吗?
lisp 编译器如何知道字符串是单纯的字符序列还是字符串?
一般来说,foo
、'foo
和"foo"
有什么区别?
字符串是一个原子
从 "atom" 定义为 "not pair".
的意义上说,您的第一个陈述是微不足道的
因此字符串绝对是一个原子:
(atom "a")
==> T
class string
实际上定义为vector
共 character
秒
(或其子类型):
A string is a specialized vector whose elements are of type character
or a subtype of type character. When used as a type specifier for
object creation, string means (vector character).
什么?集合是一个原子?!!
这与 "collection" 不能是 "atom" 的普遍理解背道而驰。
尽管如此,在 Lisp 中,数组、向量、哈希表、结构、class 对象都是原子。
基本原理(除了古老的历史)是 实现 (eval
) 不必查看原子内部 - 它们会自行评估(符号除外)。
引用
foo
是一个
symbol
,
'foo
是 identical to (quote foo)
,"foo"
是一个字符串。
进一步阅读
你应该看看基本的 lisp 教科书(例如,“Practical Common
Lisp" 或 "ANSI Common Lisp").
在我的理解中,lisp 中的一切都是一个原子或一对。
字符串算作原子吗?
lisp 编译器如何知道字符串是单纯的字符序列还是字符串?
一般来说,foo
、'foo
和"foo"
有什么区别?
字符串是一个原子
从 "atom" 定义为 "not pair".
的意义上说,您的第一个陈述是微不足道的因此字符串绝对是一个原子:
(atom "a")
==> T
class string
实际上定义为vector
共 character
秒
(或其子类型):
A string is a specialized vector whose elements are of type character or a subtype of type character. When used as a type specifier for object creation, string means (vector character).
什么?集合是一个原子?!!
这与 "collection" 不能是 "atom" 的普遍理解背道而驰。
尽管如此,在 Lisp 中,数组、向量、哈希表、结构、class 对象都是原子。
基本原理(除了古老的历史)是 实现 (eval
) 不必查看原子内部 - 它们会自行评估(符号除外)。
引用
foo
是一个
symbol
,
'foo
是 identical to (quote foo)
,"foo"
是一个字符串。
进一步阅读
你应该看看基本的 lisp 教科书(例如,“Practical Common Lisp" 或 "ANSI Common Lisp").