- バインドって何だっけ、、、そうか、(環境に)新しい記号とそれが指す値を登録することだ。
- おお、progvをつかうと、大域変数のスコープを動的にできるんだ。ん? 違うか、大域変数はそもそも動的であり、それの制御にprogvが使えるってことか。
- このあたりがREPL(=大域の一形態)の特質につながっているのだな。
CL-USER(152): (defun cnt ()
(setq x (1+ x)))
CNT
CL-USER(153): (setq x 0)
0
CL-USER(154): (cnt)
1
CL-USER(155): x
1
CL-USER(156): (progv '(x) '(2) (cnt) x)
3
CL-USER(157): x
1
CL-USER(158): (let ((x 2))
(cnt)
x)
2
CL-USER(159): x
2 - バインドの認識は冒頭のものでは不十分かもしれない。スコープの概念がないからだ。
- 宣言がらみは、スコープ、エクステント、環境というののどれを主軸に理解するか、がちょっと複雑。
- 今は写経なので、深掘りしない。
とりあえず、スペシャル変数の前まで写経。
一章すら進まないが、こつこつ。
0 件のコメント:
コメントを投稿