views:

75

answers:

2

Is there a wildcard in Common Lisp that is eql to any atom?

That is, is there any wildcard such that

(eql wildcard any-atom)

returns true?

+7  A: 

The function atom returns true if its argument is an atom.

sigjuice
+5  A: 

No.

The purpose of EQL is to compare for equality of value for certain primitive type objects (numbers, characters) and to compare for identity for all other objects (symbols, arrays, conses, structures, streams, CLOS objects, ...).

Thus it makes no sense to have something that is 'identical' to everything else. The purpose of EQL is to make the identity testable. Is this thing identical to another thing? But what purpose would be a thing that is identical to all other things, which are already not identical with each other?

The idea of an atom also makes little sense in modern Lisp. By definition everything is an atom, when it is not a cons cell.

Rainer Joswig