2013-04-03 44 views
-1

我在Common Lisp的一個新手,通過教程去,不能換我的頭周圍平等和反向功能Lisp的

(equal '(reverse (a b)) '(b a))) 

返回nil。

非常感謝您的幫助。

M.

回答

9

在LISP引用防止S-EXP的評價和周圍並將其作爲一個功能。

因此,你比較不作價功能 '(反向(AB))到列表'(AB)

如果更改了代碼

(equal (reverse '(a b)) '(b a)) 

(倒「( ab))會產生'(ba),因此平等的比較將返回真實。

+5

我會說「引用列表」,而不是「未評估函數」。 '(反向foo)'和'(a b)'之間的唯一區別在於reverse是COMMON-LISP包中符號的名稱,而a是或不是用戶定義的函數。 – Vatine