タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

macroに関するjiroron666のブックマーク (2)

  • Clojureの「..」「doto」「->」「->>」マクロの使い方覚え書き - Qiita

    ;; before -- getの引数とレシーバがわかりにくい. (.get (.getChildren pane) 2) ;; before2 -- こう書くことも出来るけど`(.`が連続して読みにくい (. (. pane getChildren) (get 2)) ;; after -- ..マクロを使うとこう書ける. macroexpandするとbefore2に等しくなる (.. pane getChildren (get 2)) 前置記法のわかりにくさ回避. 左から右, メソッドチェイン風に書ける. 引数をとる関数適用は(func arg)という形で置く. 引数なしの関数適用はfuncを単体で書けば良い. Javaメソッド(or フィールドの参照)にのみ使える この点を除けば -> マクロとほぼ同じ. Javaメソッドであることを明示でき可読性up. ..マクロは必ずJavaメソ

    Clojureの「..」「doto」「->」「->>」マクロの使い方覚え書き - Qiita
  • スレッドマクロを整理する

    スレッドマクロを整理する スレッドマクロって?スレッドマクロ(threading macro)は、Clojureのソースを人間に読みやすい形で書けるマクロで、現在のClojure 1.5.1には、結構な数のが用意されています。1.5で初めて追加されたものもありますし、まとめておくと、今後Clojureを始める人にも役立つかもしれないなあってことで、ブログ記事に書いておくことにしました。1.5で導入された新しいスレッドマクロも含めて既に知っている人には役に立たないのであしからず。 「スレッド」マクロといっても、並列プログラミングのスレッドとはまったく関係がないです。Clojureの -> や ->> のような、矢印系マクロの総称として使われています。Clojure 1.5.1では、次のスレッドマクロがあります。 ->->>as->some->some->>cond->cond->>基は -

    スレッドマクロを整理する
    jiroron666
    jiroron666 2018/02/18
    JavaでいうStreamAPIのmap, filterみたいにチェインでつなげる書き方。パフォーマンス的には落ちてしまうので頻度の高いメソッド内やループ内で使う場合には検討する必要がありそう?
  • 1