点々マクロ(..)と Java メソッドチェーン比較
tnoda さんが以前 このようなトピック を
挙げられていて基本的に賛成で、ここでは補足として Java と Clojure の書き方を並べてみる。
Java | Clojure |
---|---|
table.getColumns().clear(); | (.. table getColumns clear) |
table.getColumns().add(firstNameCol); | (.. table getColumns (add firstNameCol)) |
引数がない場合はそのまま続け、引数が続く場合はカッコで囲む、また単一メソッド呼び出しの . と異なり省略する必要がある、と言う点が違う点かな。-> のように結果を次の呼び出しの最初の引数とする点ではまさに似ている。
後者の引数を取る例だとぶっちゃけ長くなってしまうが、それでも Java メソッドチェーンである事が明確になってるメリットは崩れないと思う。