4.8 Приведение типов

Следующие функции могут быть использованы для преобразования объекта в эквивалентный объект другого типа.

[Функция] coerce object result-type

result-type должен быть спецификатором типа. object будет конвертирован в «эквивалентный» объект заданного типа. Если преобразование не может быть осуществлено, будет сигнализирована ошибка. В частности, (coerce x ’nil) всегда сигнализирует ошибку. Если object уже принадлежит заданному типу, это проверяется предикатом typep, тогда данный объект будет возвращён. В целом, невозможно преобразовать любой объект в объект любого другого типа. Допускаются только следующие преобразования.

Приведение чисел с плавающей точкой к рациональным и рациональных целым не предоставляется в связи с проблемами округления. Для этого могут использоваться функции rational, rationalize, floor, ceiling, truncate и round. Также не предоставляется приведение букв к целым числам. В этих целях можно использовать char-code или char-int.