okkez です。

少しずつ調べてますが、わかった(と思う)ものだけコメントします。

2009/01/29 16:36 akira yamada / やまだあきら <akira / arika.org>:
> 1.9.1-rc2のNEWSの内容についてのコメントと少し質問です。
(snip)
>
>> === Library updates
>> * builtin classes and objects
>>     * Blocks and Procs
>>           o Proc#yield
>
> <http://eigenclass.org/hiki/Changes+in+Ruby+1.9#l44>でしょうか。
> よくわからなかったのですがProc#callの別名のように見えます。
>

ソースをみたら、以下のように定義されていました。

# proc.c から。
    rb_define_method(rb_cProc, "call", proc_call, -1);
    rb_define_method(rb_cProc, "[]", proc_call, -1);
    rb_define_method(rb_cProc, "===", proc_call, -1);
    rb_define_method(rb_cProc, "yield", proc_call, -1);


>
>>     * Symbol
>>           o Symbol#=== matches strings
>
> ちょっとわからなかったのですが
> 「:s === "s"」とは別のことでしょうか。
> 「:s === "s"」はfalseです。

$ ./ruby -ve 'p :s ==="s"'
ruby 1.9.0 (2008-10-04 revision 19669) [i686-linux]
true
$ ruby-1.9.1 -ve 'p :s === "s"'
ruby 1.9.1p0 (2009-01-28 revision 21860) [i686-linux]
false

こうなりました。


-- 
okkez
okkez000 / gmail.com