无论 Lisp 方言如何,看起来每个包含 Lisp 函数的源代码文件本身都不是一个列表(我第一次对此感到“惊讶”是在处理我的 Emacs .el文件时)。
我有几个问题,但它们都与同一个“问题”有关,可能只是我误解了一些事情。
为什么各种 Lisp 方言的源代码文件似乎是一堆“杂乱无章”的函数,像这样:
(function1 ...)
(function2 ...)
(function3 ...)
而不是函数的“Lisp 列表”,可能是这样的:
(
'(function1 ...)
'(function2 ...)
'(function3 ...)
)
我对整个“代码就是数据,数据就是代码”的事情感到有点惊讶,因为看到源代码文件本身显然不是整洁的列表......或者他们是!?
源代码文件是否应该“操纵”?
例如,如果我想将我的一个.clj (Clojure) 源文件转换为某个 CSS+HTML 网页怎么办,源代码文件本身显然不是一个列表,这难道不是一个“问题”吗?
我从 Lisp 开始,所以我不知道我的问题是否有意义,欢迎任何解释。