在Lisp中,程序和数据是如何区分的呢,任何一个列表,Lisp都会试图对它求值。比如
>(+ 1 1) 2
那么
>(1 2 3) 错误,函数 1 不可用
于是,任何一个列表都是程序,那数据在哪里?列表中的非第一项,即树的右支。
>'(1 1 1) (1 1 1)
这次,我们得到了一个列表,那么,这就可以作为一个数据了。 但数据不会永远是数据,它实际上会立刻变成程序