* (defvar *big* 100)
*BIG*
* (defvar *small* 1)
*SMALL*
50
0] (defun smaller() (setf *big* (1- (guess-number)))(guess-number))
SMALLER
0] (defun bigger() (setf *small* (1+ (guess-number)))(guess-number))
* (defun guess-number() (ash (+ *small* *big*) -1))
STYLE-WARNING: redefining COMMON-LISP-USER::GUESS-NUMBER in DEFUN
GUESS-NUMBER
* guess-number
0[2] (smaller)
; No debug variables for current frame: using EVAL instead of EVAL-IN-FRAME.
25
0[2] (bigger)
; No debug variables for current frame: using EVAL instead of EVAL-IN-FRAME.
37
0[2] (bigger)
; No debug variables for current frame: using EVAL instead of EVAL-IN-FRAME.
43
0[2] (smaller)
; No debug variables for current frame: using EVAL instead of EVAL-IN-FRAME.
40
0[2] (smaller)
; No debug variables for current frame: using EVAL instead of EVAL-IN-FRAME.
38
我们设定数字是38
defvar定义全局变量,defparameter也是,但是defparameter语句可以反复使用,多次定义一个变量或改变量的值
比如
(defparameter xx 100)
然后再执行一次
(defparameter xx 101)
那么此时
xx是101
而
defvar则不同
(defvar xx 100)
然后再执行一次
(defvar xx 101)
那么此时
xx是100