Land of Lisp 2章メモ
2章メモ
Land of Lisp 2章を読んでのメモ。
defparameter/defvar
グローバル変数定義。 defparameterだと同名の変数を定義した時に上書きされる。 defvarだとされない。
defun
deffunではない。
ash
arithmetic shift(算術シフト)の略。
lsh(logical shift)があるのかと思ったらなかった。 Emacs Lispにはあるらしいけど。
setf
set fieldの略らしい。 変数の場所を返す式を突っ込んで評価後にそこに代入みたいなことをできるとか。
あとsetとかsetqがあって、setが基本でsetq(set quote)は変数名がくる(事が多い)第一引数のとこがクオートされるとか。
let/flet/labels
let,fletはわかるけどlabelsってどういう命名なの。。。
Source
(defvar *big* 100) (defvar *small* 1) (defun guess-my-number () (ash (+ *big* *small*) -1)) (defun smaller () (setf *big* (1- (guess-my-number))) (guess-my-number)) (defun bigger () (setf *small* (1+ (guess-my-number))) (guess-my-number)) (defun start-over () (setf *big* 100) (setf *small* 1) (guess-my-number))