2010-10-19 100 views
3

Common Lisp中是否有通配符是eql的任何原子?eql的Common Lisp通配符

也就是說,沒有任何通配符,這樣

(eql wildcard any-atom) 

返回true?

+0

你有什麼用例需要這個?是否可以使用REMOVE-IF將其轉換爲第二遍? – Vatine 2010-10-20 12:05:19

回答

8

EQL的目的是比較對的某些基本類型的對象的值相等(數字,字符)並比較用於所有其他對象(符號,數組,conses之外,結構,流的標識,CLOS對象,...)。

因此,與其他事物「相同」的東西是沒有意義的。 EQL的目的是使身份可測試。這件事是否與另一件事情相同?但是,與其他所有事物相同的事物的目的是什麼?它們之間已經不相同了?

原子的想法在現代Lisp中也沒什麼意義。按照定義,一切都是一個原子,當它不是一個壞胞時。

9

函數atom如果它的參數是一個原子,則返回true。