在Lisp中,程序和數據是如何區分的呢,任何一個列表,Lisp都會試圖對它求值。比如
>(+ 1 1) 2
那麼
>(1 2 3) 错误,函数 1 不可用
於是,任何一個列表都是程序,那數據在哪裡?列表中的非第一項,即樹的右支。
>'(1 1 1) (1 1 1)
這次,我們得到了一個列表,那麼,這就可以作為一個數據了。 但數據不會永遠是數據,它實際上會立刻變成程序