@gakuzzzz ですねー、その辺りは同意です。ただ、今回のMapのアレコレの場合、javaだと辞書リテラル無いのでMapの初期化は愚直にやるしか無くてむっちゃだるいんですけど、だるいと複雑ではないは一致してなくて、特殊なルールが無い分だるいけど分かりやすくはあるという感想です
2015-09-16 12:39:42@gakuzzzz 「統一アクセス原則」ってどういうことを指していますか? 私は "method(arg)" を "method arg" と書かれるのを嫌がってます.
2015-09-16 12:43:17@gakuzzzz き、既存の仕組みを使って工夫することは一般的によくあるんじゃ…。(震え声)
2015-09-16 12:45:28@cocoatomo 「統一アクセス原則」は引数をとらず状態を変えないようなメソッドは括弧をつけずにフィールドと同じアクセス方法しよう、ってやつですね。 method.apply(.) が method(.) 見えて嫌だという話かと思いましたが別の話ですね method arg
2015-09-16 12:47:24自分がそもそも「省略」自体が嫌いなのが根本にある気がしてきた. "Explicit is better than implicit." twitter.com/kamekoopa/stat…
2015-09-16 12:48:12applyが省略できるとかunapplyという名前であるルールでメソッドが実装されてるとパターンマッチでいい感じに出来るとか引数が一つだと括弧が省略できるとか高階関数の仮引数のアンスコ化のルールとかドット省略とかメソッド名セミコロン中置とか型パラメータ中置ルールとか
2015-09-16 12:34:44@gakuzzzz それで言えば「統一アクセス原則」は気にならないです. 数学でも「数」を「その数を返す引数 0 個の関数」と見なすこともできるので.
2015-09-16 12:49:51def nyan(): \/[Error, Result] = ??? より def nyan(): Error\/Result = ??? の方が見た目わかりやすいみたいなのあるんで慣れれば快適だとは思うんですけどねー。
2015-09-16 12:50:54あれかな。Scalaいろんな書き方が出来たりコードの様相の見せ方が出来る割には構文のルール自体は少ないみたいな話かしら。
2015-09-16 12:53:02@cocoatomo なるほど。とすると最初の「apply のレシーバに自由度がある分,「これは何の apply だ?」と考えなきゃなので」というのがいまいちどういうケースなのかがピンと来てないですね……
2015-09-16 12:53:16@cocoatomo おぉ、tomoさんと同じ考えに至るとは思いませんでした。僕もExplicit is better than implicit.と感じますね~。
2015-09-16 12:54:43「そもそもそれを求めてない、そんなには求めてない」という層の人からすればあまりメリットになってない?
2015-09-16 12:55:08@gakuzzzz 今の話の文脈で増してるという話になるかどうかはちょっと判断つかないなぁという感想です。無名クラスもインスタンス初期化子もコレクションの初期化用に導入された専用の仕組みではないので…。
2015-09-16 12:57:54そもそも、複雑さって数だけじゃ計れない気が・・・ 数が多くても全体的に安定してることもあるし、数が少なくても乱雑だと難しく見えるし。
2015-09-16 12:58:11@gakuzzzz うーん,「『apply が省略可能』とルールが1つなのでシンプル」という主張への反対意見を言いたいのですが, apply の意味自体は様々な訳ですよね? それって構文の数は減ってるかもしれないけど, apply の意味の数だけルールが増えてるように感じます.
2015-09-16 12:58:26@cocoatomo え、意味が増えてますか? そこがちょっと掴めてないです。 apply って只のメソッド名で、省略可能という話で。様々な使い方ができる=意味が様々という事でしょうか?
2015-09-16 13:00:15@gakuzzzz レシーバごとに apply の実装 (= 意味論) が違うので,「意味が増えてる」と表現しました.
2015-09-16 13:01:17@cocoatomo ううう、すみません「applyの実装が複数ある」 から 【「『apply が省略可能』とルールが1つなのでシンプル」が偽である】という命題までのつながりがまだピンときていません
2015-09-16 13:04:08