我在“Lisp 之国”一书中读到,作者提到syntax expression
。这是否意味着能够将语法表达为一种数据形式?这和S-expression
(符号表达式)一样吗?
问问题
242 次
1 回答
2
符号表达式是从 Lisp 已知的被序列化的数据。它使用符号、字符串、数字、列表等。(
expression
列表以*的形式编写)
。
《 Land of Lisp》的作者谈到了语法表达式和Lisp 语法表达式。似乎这是他发明(发现?)的东西。;-) 他可能指的是 Lisp 语法中的一个表达式,其中类似于(walk right)
这样的表达式,列表的第一个元素是动词。
在 Common Lisp 中,编程语言的有效表达式称为Lisp 形式。所以一个 s-expression 可以表达各种数据,但并不是所有的 s-expression 都是有效的 Lisp 程序。例如(defun)
,它不是一个有效的 Common Lisp 程序,因为它缺少函数名和参数列表 - 加上可选的声明、文档和实现主体:(defun foo ())
.
于 2012-03-04T14:46:49.887 回答