あおきです。

  In mail "[ruby-dev:16757] ==="
    "Akinori MUSHA" <knu / iDaemons.org> wrote:

>  Array, Hash, Proc などで、 === が以下のように定義されていると
> 一般的に便利なように思いますが、いかがでしょう。

> - case-when で、 Array や Hash を場合分けしたり、 grep で探す
>   ことは少なそう。もし無視できない数存在しそうであれば、

かつて when *list という表現がなかったころ、when に配列を
置いたときに include? になってしまうのが嫌、という声があり
消滅したのだと記憶しています。
(その代わりに when *list ができたのでした)


また Proc に関して

> 	class Proc
> 	  def ===(o)
> 	    call(o)

これは使われたときに意味が明確でないですし、全ての Proc が
真偽判定に使われるのではないので全ての Proc に定義するのは
よくないと思います。こういうことがしたい場合には特異メソッドを
使うということでどうでしょ。

  cond = lambda { .... }
  cond.instance_eval { alias === call }
  
-------------------------------------------------------------------
青木峰郎