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)