Объявления типов Common Lisp работают не так, как ожидалось

Когда я определяю функцию в Common Lisp следующим образом:

(defun foo (n)
  (declare (type fixnum n))
  (+ n 42))

Я ожидал, что вызов типа (foo "a") сразу завершится ошибкой, но вместо этого он завершился неудачно при вызове + . Форма declare не гарантирует статическую проверку типа?

5
задан Eli Schneider 1 March 2012 в 18:44
поделиться