我在“Lisp的国度”这本书中读到,作者提到了syntax expression。这是否意味着能够将语法表达为一种数据形式?这是否与S-expression (符号表达式)相同?
发布于 2012-03-04 22:46:50
符号表达式是从Lisp知道的序列化的数据。它使用符号、字符串、数字、列表等。列表以( expression* )的形式编写。
“Lisp的土地”的作者谈到了语法表达式和Lisp语法表达式。这似乎是他发明(发现?)的东西。;-)他可能指的是Lisp语法中的表达式,其中像(walk right)这样的表达式就是列表的第一个元素是动词的表达式。
在Common Lisp中,编程语言的有效表达式称为Lisp form。因此,s表达式可以表达所有类型的数据,但并不是所有的s表达式都是有效的Lisp程序。例如,(defun)不是一个有效的Common Lisp程序,因为它缺少函数名和参数列表--外加可选的声明、文档和实现主体:(defun foo ())。
https://stackoverflow.com/questions/9555387
复制相似问题