なひです。 Tanaka Akira wrote: >>名前空間を汚すのが気にくわないのと大文字ではじまるメソッド名の >>2点が引っかかっています。 > > 名前空間を汚すのは理解できるのですが、大文字で始まるメソッドはあまり使 > われないため重なることはあまり無く、許容範囲だと感じます。また、私が想 > 定していた前例は Complex() や Rational() で、こういうメソッドをコンス > トラクタなかんじに使ってもいいような印象を持っています。 クラス名と同名の大文字メソッドについては、なひは、その覚え易さ、見た目の スマートさという利点が、MoonWolfさんの書かれているデメリットを上回ると感 じます。 ただ少し気になるのは、細かいですが、以下の点です。 * 田中さんが書かれている通り、Klass()はコンストラクタな感じがする。 * Integer(arg), Float(arg), String(arg)らはarg.to_?を呼ぶ。 * Rational(*arg)はRational.reduce(*arg)を呼び、Complex(*arg)は Complex.new(*arg)を呼ぶ。 なひはこれまで、後者のRationalとComplexは意識してなくて、前者のパター ンしか認識していなかった。そのため、Rubyにおけるクラス名同名メソッドは 型のキャストだと思い込んでいて、URI(arg)は、arg.to_uriが呼ばれそうな感 じ。これは既に反例があることから、思い込みの間違いであって気にしない、 ということでよい? また、URI()でto_uriをチェックするのはどうかしら? > あと、[] はオブジェクトを生成する用法としては、集合っぽいものを生成す > るものという印象があるので、URI にはあまり似合わないように思います。少 > なくとも Array[], Hash[], Set[], Matrix[], Vector[] あたりはそういう用 > 法だと思います。 同感です。 > 今の所、やはり URI() がいいかなぁ、と感じているのですが、どうでしょう > ね。 なひは今のところURI()に、Rational()およびComplex()との違いを感じないので、 1. URI()導入。 2. Rational()とComplex()を、引数のto_rやto_complexを呼ぶように変更。大変 更で大騒ぎ。 のいずれか、特に前者がよいと思います。