原です。


>   proc{
>    iii=5			# dynamic local variable
>    $proc = proc{|i|
>       iii = i
>     }
>     $proc2 = proc {
>       $x = iii			# dynamic variables shared by procs
>     }
>     # scope of dynamic variables
>     p (defined?(iii))
>   }.call
>   p(defined?(iii))		# out of scope
> 
>   $x=0                          # $xを初期化
>   $proc.call(5)                 # 動的変数iiiに5を代入
>   $proc2.call                   # $xにiiiの値を代入
>   p $x                          # $x == 5
> 
> これでわかる?


この例自体はわかるんですが、3箇所に proc が出てくるのが、、^^;
最小構成にするとどうなるんだろう。


ああ、それから、これも perl から来た人は躓くでしょうね。

print defined?(a), "\n" if a = TRUE  # ==> FALSE

---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=--
                            Shin-ichro Hara(Nagaoka Univ.of Tech.)