21 ms·
Using a Lisp compiler helps a bit. * (defun foo (alpha) (flet ((beta (bar) (+ alph bar))) (bet (beta 1 2)))) The Lisp compiler,
by lispm 9y ago
Using a Lisp compiler helps a bit.
* (defun foo (alpha)
(flet ((beta (bar)
(+ alph bar)))
(bet (beta 1 2))))
The Lisp compiler, here SBCL with its REPL, detects in this function above:
* wrong number of arguments
* undefined function
* undefined variable
* unused variable
Lisp compilers have only been made available as late as 1962, so that might explain why Lisp has no wider adoption...
; in: DEFUN FOO
; (BETA 1 2)
;
; caught WARNING:
; function called with two arguments, but wants exactly one
; See also:
; The ANSI Standard, Section 3.2.2.3
; (SB-INT:NAMED-LAMBDA FOO
; (ALPHA)
; (BLOCK FOO
; (FLET ((BETA #
; #))
; (BET (BETA 1 2)))))
;
; caught STYLE-WARNING:
; The variable ALPHA is defined but never used.
; in: DEFUN FOO
; (+ ALPH BAR)
;
; caught WARNING:
; undefined variable: ALPH
; (BET (BETA 1 2))
;
; caught STYLE-WARNING:
; undefined function: BET
;
; compilation unit finished
; Undefined function:
; BET
; Undefined variable:
; ALPH
; caught 2 WARNING conditions
; caught 2 STYLE-WARNING conditions
FOO
- cronjobber 9y agoMost of your comments would be vastly improved by omitting the reams of repl output.
- flavio81 9y agoTrue, so true. The SBCL compiler is almost human; Once, it insulted me with something like: "You have assigned a value to an index out of bounds. Congratulations!!" Keep on preaching, Rainer, and may the other programmers see the light.