3 ms·
Didn't know about those type annotations in lisp, but i suppose what you mean is that an ide could parse all the code, infer the type of all the function / vari
by bsaul 8y ago
Didn't know about those type annotations in lisp, but i suppose what you mean is that an ide could parse all the code, infer the type of all the function / variables etc (just like the lisp interpreter would) and provide you with refactoring facilities ?
That's a good thing. But then comes the git merge (or any other automatic code altering tool). How do you know something hasn't been messed up in the process ? (unless you wrote unit test for every argument of every function)
- lispm 8y ago> lisp interpreter Lisp has compilers. Some do also some type checking, here SBCL 1.5.2: (declaim (ftype (function (fixnum) fixnum) foo)) (defun foo (a) (+ a 1)) (declaim (ftype (function (fixnum) string) bar)) (defun bar (a) (if (zerop a) "zero" "not-zero")) (defun baz (a) (foo (bar a))) Then: * (compile-file "/tmp/test.lisp") ; in: DEFUN BAZ ; (FOO (BAR A)) ; ; note: deleting unreachable code ; ; caught WARNING: ; Derived type of (BAR A) is ; (VALUES STRING &REST T), ; conflicting with its asserted type ; FIXNUM.