LINUX.ORG.RU

История изменений

Исправление 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.