実践Common lispを読み始めた-第6章 変数

リファレンス

専門書が充実している本屋に行ったらCommon LISP第2版が置いてあった。リファレンスとして一冊あると何かと便利だろうと思って、値段をみたら税込み8400円なり。
まだ自分には早いな。

レキシカル変数とダイナミック変数そして型付け

おおざっぱに言えば、

といってよいのかな。

Common Lispはdynamically typed。それはそうだよね。型宣言してないし。でも、本にはすべての型エラーを検出するという意味ではStrongly typedと書いてある。smalltalkとかでは型エラーを検出できないケースがあるのだろう。知らないのでパス。

レキシカル変数

レキシカル変数は、defun、letで作れる。

クロージャ

入れ子になった関数から外側の変数にアクセスすることができる。このとき、関数から外側の変数
は必要とされている間はずっと呪縛されている。

ダイナミック変数

defvar、defparameterを使う。ネーミングルールは名前の最初と最後に'*'をつける。

>(defvar *hoge* 100 "doc")

定数

defconstantを使う。定数のネーミングルールは名前の最初と最後に'+'をつける。

>(defconstant +hoge+ 100 "doc")