4clojure #72 Rearranging Code: ->>

4clojure #72 Rearranging Code: ->>

->>マクロは複数のフォームを経由して式xをつなげる。 はじめに、xは第一フォームに最後として挿入され、 それがすでにリストでなければリストを生成する。 それから、第一フォームは第二フォームへ最後のアイテムとして挿入され、 必要ならばそのフォームのリストを作る。 このプロセスが全フォームにわたって繰り返される。 ->>をつかうことは時に、コードを読みやすくします。

(= (__ (map inc (take 3 (drop 2 [2 5 4 1 3 6]))))
   (->> [2 5 4 1 3 6] (drop 2) (take 3) (map inc) (__))
   11)

答え

reduce +