Home | Notifications | New Note | Local Timeline | Federated Timeline | Profile | Logout

Note Detail


きゅーけー@tojoqk@mastodon.tojo.tokyo(2025-12-03 20:58:15)
最近Rubyの特異メソッドという概念をしっかりと把握したのだけど、CLOSのeql specializerとはやりたいことが全然違う機能であることがわかった。CLOSの方は特定のシンボルとか数値に対してディスパッチするのがメイン機能であって、eql と equal で意味が変わるようなものを指定するためのものではないと思う。

特異メソッドはCLOSを参考にしたというのは事実なのだと思うけどなんだかCLOSへの誤解をうむのではないかと感じる。。。

---Reply--- masso@masso@mastodon.sdf.org(2025-12-03 21:03:11) @tojoqk 井田昌之先生がeql specializerを紹介するのに特異点を想像したためにそんな解説を書いたのをmatzがシンギュラーという解釈でrubyに取り込んだという流れですね。挙動については、metaclass構造の違いが動作に表われてきてるのではないかと思います。rubyはsmalltalkと同じ構成なので Reply

---Replies---
きゅーけー@tojoqk@mastodon.tojo.tokyo(2025-12-03 21:23:17)
@masso 
総称関数の特異点だから特異メソッドと呼んでいたところを、メソッドを関数ではなくメッセージだと考えているシステムに同じ名前のまま別の解釈によって導入した結果なんですね。
結果として目的としても機能としても違うものになっているのにもかかわらず関連づけられているのは奇妙な話ですね…