Lisp:原子和字符串
Lisp: atom and string
我正在开发一个简单的 Lisp 解释器。现在我正在尝试为它编写一个解析器。 LISP - Basic Syntax。我读到在 Lisp 中只有三种类型的块:atom
、list
、string
。另外,我注意到 string
块可以嵌套到 list
中,例如:
(format t "Some string block...~%")
.
可以将 string
类型的积木视为 atom
积木吗?
首先,您选择作为 "reference" 的页面质量 非常 可疑。最明显的视觉危险信号是 "unconventional"(委婉地说)格式化 Lisp 代码的方式。
第二,block
in Lisp has a very specific meaning. When they use that word they, apparently, mean token
.
第三次, string
type in Lisp is a subtype of type atom
:
(atom "foo")
==> t
因此,您所问问题的答案是:是的,每个字符串都是一个原子。
你应该问的问题的答案是:参考 CLHS,而不是一些可疑的网站。
PS。有几个 FLOSS Common Lisp 实现可用(例如,
CLISP, SBCL),
您可能想先看看他们是如何做事的。
我正在开发一个简单的 Lisp 解释器。现在我正在尝试为它编写一个解析器。 LISP - Basic Syntax。我读到在 Lisp 中只有三种类型的块:atom
、list
、string
。另外,我注意到 string
块可以嵌套到 list
中,例如:
(format t "Some string block...~%")
.
可以将 string
类型的积木视为 atom
积木吗?
首先,您选择作为 "reference" 的页面质量 非常 可疑。最明显的视觉危险信号是 "unconventional"(委婉地说)格式化 Lisp 代码的方式。
第二,block
in Lisp has a very specific meaning. When they use that word they, apparently, mean token
.
第三次, string
type in Lisp is a subtype of type atom
:
(atom "foo")
==> t
因此,您所问问题的答案是:是的,每个字符串都是一个原子。
你应该问的问题的答案是:参考 CLHS,而不是一些可疑的网站。
PS。有几个 FLOSS Common Lisp 实现可用(例如, CLISP, SBCL), 您可能想先看看他们是如何做事的。