lisp精要( ) 猜數字演算法與全域性函式 變數

2021-10-04 12:52:10 字數 1435 閱讀 7261

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

演算法 猜數字大小

我們正在玩乙個猜數字遊戲。遊戲規則如下 我從 1 到 n 選擇乙個數字。你需要猜我選擇了哪個數字。每次你猜錯了,我會告訴你這個數字是大了還是小了。你呼叫乙個預先定義好的介面 guess int num 它會返回 3 個可能的結果 1,1 或 0 1 我的數字比較小 1 我的數字比較大 0 恭喜!你猜...

演算法入門 7 猜數字

小a 和 小b 在玩猜數字。小b 每次從 1,2,3 中隨機選擇乙個,小a 每次也從 1,2,3 中選擇乙個猜。他們一共進行三次這個遊戲,請返回 小a 猜對了幾次?輸入的guess陣列為 小a 每次的猜測,answer陣列為 小b 每次的選擇。guess和answer的長度都等於3。解析 直接列表解...

演算法 猜數字 簡單程度

小a 和 小b 在玩猜數字。小b 每次從 1,2,3 中隨機選擇乙個,小a 每次也從 1,2,3 中選擇乙個猜。他們一共進行三次這個遊戲,請返回 小a 猜對了幾次?輸入的guess陣列為 小a 每次的猜測,answer陣列為 小b 每次的選擇。guess和answer的長度都等於3。示例 1 輸入 ...