Может быть, этот вопрос слишком общий, тем не менее, я попробую: есть ли какое-нибудь исчерпывающее руководство по типам в common lisp?
Я немного запутался в этой теме:
Почему непримитивные типы, объявленные в make-array
:element-type
, продвигаются до t
? Есть ли возможность проверки реального объявленного типа во время компиляции или во время выполнения?
Почему типы, определенные слотом CLOS, не работают как ограничения, позволяющие помещать в слот значение любого типа? Опять же, что с чеками?
То же самое для объявлений типов функций с declare
.. Это просто намеки на оптимизацию для компилятора?
Кроме того, могу ли я использовать спецификаторы пользовательских типов, включая satisfies
в вышеупомянутых местах для некоторых надежных проверок, или их можно использовать только для явных проверок с typep
и т. д.?
Как видите, у меня в голове неразбериха, поэтому буду очень признателен за аккуратное руководство (или набор руководств).
Я на SBCL, но также был бы рад узнать о различиях между реализациями.
make-array
или типе слота.. или, может быть, я просто не заметил.. - person leetwinski   schedule 08.06.2016