Rubyにおける「特異メソッド」という名称について

Kawasaki.rbで話題になったのでまとめました
2
Yusuke Endoh @mametter

blade.nagaokaut.ac.jp/cgi-bin/scat.r…@yukihiro_matz によると Bit 別冊の「CLOS特集」が起源らしいけど、その本はどうして特異メソッドと呼んだのだろうか。CLOS では singular method なのかしら

2014-01-12 11:49:02
Yukihiro Matz @yukihiro_matz

@mametter bit別冊をチェックしました。1章、2章で特異メソッドという単語は確かに使われているのですが、相当する英語表現が登場しません。また、CLOSの仕様書にも登場しません(驚愕)。井田昌之先生に聞いてみるしかないかなあ。

2014-01-12 23:42:00
Yusuke Endoh @mametter

@yukihiro_matz おお、ありがとうございます。CLOS を調べようとしてたところですが手間が省けました。井田先生の造語説が有力な感じですねえ

2014-01-12 23:45:23
Yukihiro Matz @yukihiro_matz

@mametter 念の為ですが、相当する機能は存在します。が、そこは「引数特定子はクラス名または(eql object)である」と定義されています。「eql特定子があるメソッド」に名称はついてないみたいです。

2014-01-12 23:54:11
Yukihiro Matz @yukihiro_matz

@mametter もっとも多重メソッドのどれかひとつの引数にeql特定子が指定されていても、特異メソッドとは断定しがたいわけで、「特異メソッド」という単語が意味を持つのは、Rubyのような多重メソッドのない、メソッドがクラスに所属する言語なのかもしれません。

2014-01-12 23:56:43
Yusuke Endoh @mametter

@yukihiro_matz 確かに多重ディスパッチを考えると「特異メソッド」の意味がぼやけますね。bit 別冊にはそのへんに関する記述はないわけですかね。何とも不思議な出自の言葉ですねえ

2014-01-13 00:06:42
Yukihiro Matz @yukihiro_matz

@mametter あくまでも可能性ですが、CLOS以前、Flavorsはマルチメソッドではなかったので、その頃に誕生した用語なのかもしれません。って、Flavorsに特異メソッドがあったのか確認できてないのですが。

2014-01-13 00:41:06
Yusuke Endoh @mametter

@yukihiro_matz Flavors って初耳です。 en.wikipedia.org/wiki/Flavors_(… を見ただけですが、"Methods specialized on individual objects (via EQL)" は Flavors にないみたいです

2014-01-13 00:47:23
Yukihiro Matz @yukihiro_matz

@mametter 私の方でもちょっと調べてみたのですが、Flavorsにもnew Flavorsにも特異メソッドはないみたいでした。とすると、どこから来たんでしょうねえ。井田先生に聞いてみないと。調べた範囲ではObject Lispが怪しい

2014-01-13 01:23:52
Yusuke Endoh @mametter

@yukihiro_matz @esumii Rubyでsingleton methodが「特異メソッド」と呼ばれる件、元ネタとされるbit別冊のCLOS特集を国会図書館で見てきて、発見がありましたのでご報告します。5連続ツイートで失礼します。

2015-06-05 20:29:31
Yusuke Endoh @mametter

@yukihiro_matz @esumii なんと、「筆者はこうしたことのためのメソッドを特異メソッドと呼んでいる」と書いてありました。素直に受け取れば、著者の井田先生は"singleton"を訳したのではなく、先生自身が命名したオリジナル用語ということのようです。

2015-06-05 20:30:17
Yusuke Endoh @mametter

@yukihiro_matz @esumii 井田先生は特異メソッドのユースケースに「非連続関数における不連続点の処理や、無限大の組み込みなど」を挙げているので、数学の特異点を意識してつけたようです。

2015-06-05 20:30:27
Yusuke Endoh @mametter

@yukihiro_matz @esumii いずれにせよこれは、"singleton"を「特異」と誤訳した事件ではなく、「特異」が"singleton"と訳されたという事件でした。

2015-06-05 20:31:23
Yusuke Endoh @mametter

@yukihiro_matz @esumii なおこれは個人的な予想ですが、「特異」を"singleton"と訳した誰かは、"singular method"じゃ意味わかんないので敢えて避けたような気もします。以上、連続で失礼しました。

2015-06-05 20:32:22