Rubyの配列で循環参照
Rubyでは変数はオブジェクトへの束縛で、参照となるだけ。
よって
a = "abc" b = a a[0] = 'A' p b
で、==>'Abc'となる。
参照ということであれば循環的な配列も作れるということで、試してやると作れました。当たり前ですが。
#ruby -Ks def show_array(a) a.each do |x| p x.class if $DEBUG if x.instance_of?(Array) print "\n<再帰>" if $DEBUG show_array(x) else print x, " " end end end a = [1, 2, 3] b = a a[2] = b # a[2]の参照先は自分自身になるはず show_array(a) # スタックオーバーフローまで実行