lisp-猜数字算法与全局函数、变量

* (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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值