- 403 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 19:03:42 ]
- >>398 クロージャ理解の壁だね。やりたい事はわかるが、おしい。もう一歩。
ここで変数のスコープとかの理解が加われば先に勧めるよ。 クロージャは変数をキャプチャするが、それは「クロージャが作成された」環境の変数なんだ。 cplus が作成されたときに参照している count はグローバル環境の count で、let で作った束縛じゃない。 したがって、後から関数の外側で let で束縛を作っても意図した動作にはならない。 この場合は count がスペシャル変数としてグローバル環境に定義されていた場合はまた話が違うんだけどね…。
|

|