前田です。

In message "[ruby-list:4207] deep copy"
TAKAGI Hiromitsu <takagi / center.nitech.ac.jp> wrote:

| >   class HtmlOutputStream
|	:
| >       def print(*args)
| >           new_args = args.dup
| >           new_args.each do |arg|
| >               arg.gsub!(/&/, "&amp;")
|
|バグを生んでました。
|args だけ dup してもしょうがないのでした。
|
|deep な copy はないのでしたよね?

この場合collectを使われるのがよいのではないでしょうか。
deep copyしたい時って配列の要素を書き換えるような場合で
もとの配列はそのまま残したい時ですよね?

-- 
前田 修吾