[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:340

From: Nobuyoshi Nakada <nobu.nokada softhome.net>
Date: Mon, 29 Nov 2004 15:43:13 +0900
Subject: [yarv-dev:340] Re: yarv(Ruby) のブロックローカル変数

なかだです。

At Fri, 26 Nov 2004 15:34:58 +0900,
SASADA Koichi wrote:
> > その後考えてみたところ、以前は実際の代入まで変数が存在しなかっ
> > たんですが、今はブロックの先頭で初期化されるようになったので、
> > それも可能かも知れないという気がして来ました。
> 
>  こんな例はどうでしょうか。
> 
> 	pr = []
> 	proc{|i|
> 	  p3 = proc{|j|
> 	    pr << proc{|k|
> 	      p [i, j, k]
> 	    }
> 	  }
> 	  p3.call(1)
> 	  p3.call(2)
> 	}.call(0)
> 
> 	pr.each{|prc|
> 	  prc.call(:last)
> 	}

以前、ネストしたブロックごとにローカル変数の配列をもって、外側
で定義された変数はネストしたレベルとインデックスを使ってアクセ
スする、という方式を考えたことがあります。しかし、今の全部フラッ
トにalistだけで管理(ブロックの区切りはID==0)する方式と比べて目
だったメリットがなさそう、あるいは微妙な感じだったので没にしま
した。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       334 2004-11-25 02:30 [cv8t-hdk asahi-net.o] yarv(Ruby) のブロックローカル変数       
       335 2004-11-25 02:39 ┗[nobu.nokada softhome]                                       
       336 2004-11-25 02:46  ┗[cv8t-hdk asahi-net.o]                                     
       338 2004-11-26 14:38   ┗[nobu.nokada softhome]                                   
       339 2004-11-26 15:34    ┗[ko1 atdot.net       ]                                 
->     340 2004-11-29 15:43     ┗[nobu.nokada softhome]                               
       341 2004-11-29 20:46      ┗[ko1 atdot.net       ]                             
       342 2004-11-30 00:06       ┗[nobu.nokada softhome]