Common Lisp содержит несколько различных представлений для чисел. Эти представления могут быть разделены на четыре категории: целые, дробные, с плавающей точкой и комплексные. Большинство функций принимают любой тип числа. Некоторые другие — только определённый тип.
В целом числа в Common Lisp’е не является объектами в прямом понимании слова. Нельзя полагаться, например, на использование eq для чисел. В частности, возможно, что значение выражения
может быть ложным, а не истинным, если значение z является числом. __________________________________________________________________
Обоснование: This odd breakdown of eq in the case of numbers allows the implementor enough design freedom to produce exceptionally efficient numerical code on conventional architectures. MacLisp requires this freedom, for example, in order to produce compiled numerical code equal in speed to Fortran. Common Lisp makes this same restriction, if not for this freedom, then at least for the sake of compatibility.
Если два объекта сравниваются для «идентичности», но один из может быть числом, то использование предиката eql является более подходящим. Если оба объекта являются числами, то преимущество стоит отдать =.