From: Hisashi Yahata Date: 2005-01-13T16:38:47+09:00 Subject: [ruby-list:40526] procの動作について(質問) 矢幡と申します。 Procがサブルーチンのように利用できることを知りましたので、Basicから移植しま した。 しかし、通常のサブルーチンのようにどこに記述してもよいのではないことがわかり 始め、さらに単純化すれば、次の二つのように、動作が異なることに気付きました。 Procの動作をどのように考えればよいのかどなたか教えてください。よろしくお願い します。         記 問題点: (A)では、beginでaを定義し、prで内容を変換したつもりでも、変換さ れない。       しかし、(B)では、prによってaの内容を3に変更される。 なお、(A)のbegin,endは、ここでは、不要ですが、長い定義を初期化しておこうとい うつもりです。 #====(A)======== pr=proc{ a=2 } begin a=1 pr.call end pr2=proc{ p a } pr2.call #=>1 #====(B)========= a=1 pr=proc{ a=3 } pr.call pr2=proc{ p a } pr2.call #=>3