[#36686] 1.1 < 61.1 - 60.0 — Shin-ichiro HARA <sinara@...>

原です。

19 messages 2002/12/06

[#36770] www.ruby-lang.orgリニューアル準備のお知らせ — TADA Tadashi <sho@...>

ruby-lang.orgのwebmasterチームでは、タイムリーな情報提供と使いやすい

11 messages 2002/12/16

[ruby-list:36802] Re: Array#=== は?

From: "Akinori MUSHA" <knu@...>
Date: 2002-12-17 20:54:59 UTC
List: ruby-list #36802
At Wed, 18 Dec 2002 04:34:22 +0900,
Take_tk wrote:
> [ruby-list:36799] Re: Array#=== は? にて 
> "Akinori MUSHA" <knu@iDaemons.org> さん 曰く:
> 
> :   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."

In This Thread

Prev Next