初めまして。
 mainオブジェクトのメソッドを関数形式で呼んだら、呼ばれたメソッド内での
selfは呼び出し元のオブジェクトになるようなのですが、このことはどのように
理解すればよいでしょうか。
 以下のプログラムでxはたった一度だけ@xを作成する目的で作ったメソッドで
す。mainで"p x"としてもTestクラスのpxで"p x"としても同じ内容が表示される
ことを期待したのですが実際には違う内容を表示します。

def x
  @x=[] if not @x
  @x
end

class Test
  def px
    @x = 3
    p x
  end
end

x << 1 << 2
p x
Test.new.px

=>[1, 2]
=>3

                 システムアート研究所 中西 健

--------------------------------------
Celebrate Yahoo! JAPAN 10th Anniversary
http://pr.mail.yahoo.co.jp/10thann/