と言われてしまった。
どうも、このままだと外側のコードブロックにある変数を見てくれないらしい。
だから、どうやってやるんだろうといろいろと調べていたら、どうも、下記コードのように配列とすると、外側のコードブロックにある変数にアクセスできるっぽい。
で悩んでいた問題は
ある名前がブロック内で束縛されている場合、名前はそのブロックに おけるローカル変数 (local variable) です。 ある名前がモジュールレベルで束縛されている場合、名前は グローバル変数 (global variable) です。 (モジュールコードブロックの変数は、ローカル変数でもあるし、 グローバル変数でもあります。) ある変数がコードブロック内で使われているが、そのブロックでは定義 されていない場合、変数は 自由変数 (free variable)です。
という事で、同じ名前の変数を使うと、そのブロックで新しく作られ、そのブロック全体で有効になるんですね。