ruby-devにふります。 From: Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> Subject: [ruby-list:7608] Re: How to write Perl's `@a[@b] = @c' in ruby Date: Fri, 17 Apr 1998 12:53:55 +0900 > | i.each{|x|a[x] = b.unshift} # ただしbは空になる > > | k.each{|x|h[x] = v.unshift} # ただしvは空になる > > 1.1 なら、 > > i.each_with_index{|x,j|a[x] = b[j]} > k.each_with_index{|x,j|h[x] = v[j]} > > でしょ? これはきれいですね。ですが、よく考えると、Perlで使う時は @a[@i] = some_function(); みたいにする事も多いんですよね。そういう場合は一時変数に受けることにな るので、まつもとさんのshiftを使う方法でも違いがない事になってしまうん ですが... 安直に、a[i] = b や h[k] = v で i, k がArrayの場合に上のような意味にな る、というのはやっぱり駄目ですか? もしそうすると対称性を考えるとa[i], h[k]の参照もa.indexes(*i) や h.indexes(*k) を返すとして欲しくなりますけど。 -- 稲葉 浩人 (inaba / st.rim.or.jp)