From: Akinori MUSHA Date: 2002-12-18T05:54:59+09:00 Subject: [ruby-list:36802] Re: Array#=== は? At Wed, 18 Dec 2002 04:34:22 +0900, Take_tk wrote: > [ruby-list:36799] Re: Array#=== は? にて > "Akinori MUSHA" さん 曰く: > > : when *[1,2,3,4,5] > >  いろいろやり方があるのは分かっているんです。 >  初心者向けの解説を書いていて、なんか説明しにくいなあ、こうなっていれば > きれいに説明できるのになぁ……と思った次第なのです。  そう書いてもらわないと分かりません。先のメールには Range との 対比は出て来ませんでした。  Array#=== について言うと、 いずれかの要素と === の関係が成立 するという仕様は自明ではないと思います。Range からの類推を言う なら、「この中に含まれる」という意味でむしろ include? の動作を 期待しません? > cond1はRange、cond2はArray。何故違うか? を説明しにくい。  Array はあくまで配列であり、文法要素としてのリストに展開する には * を付ける必要がある、くらいでかわしてはどうですか。  Array#=== が特に定義されていないのは、 when 節では * で配列 展開できるので必要性が薄いからでしょう。一つの when に複数の (リテラルでない)配列を並べたいこともあまりなさそうですし。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "I believe in what I see, I believe in what I hear, I believe that what I'm feeling changes how the world appears."