История изменений
Исправление theNamelessOne, (текущая версия) :
Мой поинт был в том, что твой код со статической типизацией даже бы не скопилировался.
λ nameless@laptop cl → cat test.lisp
(defun test (arg)
(declare (type fixnum arg))
(format t "I've got a value of type ~a" (type-of arg)))
(test "static typing, my ass")
λ nameless@laptop cl → sbcl --noinform --eval '(compile-file "test.lisp")' --quit
; compiling file "/tmp/cl/test.lisp" (written 02 JUL 2016 04:45:52 PM):
; compiling (DEFUN TEST ...)
; compiling (TEST "static typing, my ass")
; /tmp/cl/test.fasl written
; compilation finished in 0:00:00.017
.
(declare (type ...))
даёт только оптимизацию и runtime asserts.
Исходная версия theNamelessOne, :
Мой поинт был в том, что твой код со статической типизацией даже бы не скопилировался.
λ nameless@laptop cl → cat test.lisp
(defun test (arg)
(declare (type fixnum arg))
(format t "I've got a value of type ~a" (type-of arg)))
(test "static typing, my ass")
λ nameless@laptop cl → sbcl --noinform --eval '(compile-file "test.lisp")' --quit
; compiling file "/tmp/cl/test.lisp" (written 02 JUL 2016 04:45:52 PM):
; compiling (DEFUN TEST ...)
; compiling (TEST "static typing, my ass")
; /tmp/cl/test.fasl written
; compilation finished in 0:00:00.017
.
(declare (type ...))
даёт только оптимизацию и runtime assert.