|
|
|
|
|
by tmtvl
1032 days ago
|
|
So weird seeing CL code without a bunch of (declare (type (integer 0) n))'s everywhere. That's the only thing which keeps me with CL instead of Scheme (I'm rather fond of syntax-rules, case-lambda, case sensitivity, and being able to do things like... (define range+ (make-range-merger +))
(define (double-range range)
(range+ range range))
, which I think is a little nicer than (setf (fdefinition range+)
(make-range-merger #'+))
or having to precede range+ with funcall everywhere I want to use it). |
|
I prefer the Common Lisp version:
It's clear that DEFVAR usually defines a variable and not a function. Bonus: we can document the thing in a standard way.For functions I would define a define macro.
Which would expand into a (setf fdefinition), a type declaration and setting the documentation.I prefer the uglier, but better standardized and slightly more practical language.