Aクラスのインスタンス
f e d c b a を up という変数でつなぎ合わせた場合

a.up # => b
a.up.up # => c
a.up.up.up # => d
a.up.up.up.up # => e
a.up.up.up.up.up # => f
a.up.up.up.up.up.up # => nil

こんな状態になるわけだけど
p func a # => f

で f を取得したいときに関数funcはどのように書きますか?

def func z
...
end


-----------------
ちなみに再帰だと
def func z
 return func z.up if z.up
 z
end

こうなりますけど


ループでかけんの?