From: Shingo Hagiwara Date: 2009-07-05T00:43:52+09:00 Subject: [ruby-list:46161] Re: メソッドArgumentのParenthesisについて よこやりですいませんが、なんだか違和感があったので。 > puts a*(x1+sin(y1)), b*(x2-cos(y2)) これは例として対比するならば、 puts a*(x1+sin(y1)),b*(x2-cos(y2)) と書くべきだという気がします。むしろ、 puts a*(x1+sin(y1)) b*(x2-cos(y2)) でしょうか? > puts(a*(x1+sin(y1)), b*(x2-cos(y2))) これも puts(a*(x1+sin(y1)),b*(x2-cos(y2))) という例が適切かと思うのですが。 また > join(reverse(sort(array))) # 架空の言語 は大変分かりやすいかと。 > array.sort.reverse.join # Ruby これは「.」の意味論によるもので、 「.」が「前オブジェクトの後ラベルを実行する」という事に依存している物かと思います。引数の括弧の有無とは関係ない気もしますが。 > array.inject(0, func(r, x){なにか}) # 架空の言語 これもオブジェクトという型と、関数という型を混在させた例なので あまり適切であるようには思えません。 任意の関数を引数に持つ場合それは高階になるので、オブジェクトのみを 引数に持つ場合に対して、理論的な隔たりが大きいように思います。 群化が作用しているかどうかと問われると、 上記例では疑問を持たざるを得ません。