我在“Lisp的土地”一书中读到,作者提到了syntax expression
。这是否意味着将语法表达为数据形式的能力?这与S-expression
(符号表达式)相同吗?
答案 0 :(得分:2)
符号表达式是从Lisp中已知的序列化数据。它使用符号,字符串,数字,列表等。列表以(
expression
* )
的形式撰写。
Land of Lisp 的作者讨论语法表达式和 Lisp语法表达式。这似乎是他发明的东西(被发现?)。 ;-)他可能意味着Lisp语法中的表达式,其中像(walk right)
这样的表达式是列表的第一个元素是动词。
在Common Lisp中,编程语言的有效表达式称为Lisp form。所以s表达式可以表达各种数据,但并非所有的s表达式都是有效的Lisp程序。例如,(defun)
不是有效的Common Lisp程序,因为它缺少函数名称和参数列表 - 加上可选的声明,文档和实现主体:(defun foo ())
。