Rubyの配列おもろい

rubyの配列がやたら柔軟だということは知ってたんですが、

[1,2,3,4,5]-[1,4,5]      # => [2,3]
[1,2,3,5]+[3,5]     # => [1,2,3,5,3,5]
[1,2,3,5,3,5]-[3,5]     # => [1,2]

自分自身を含む配列なんてできるのか...。無限ネスト。

ary=[1,2,3]
ary.push ary
p ary     # => [1,2,3, [...]]
p ary.join     # => "123123[...]"

何に使うんだこれ。