私が見ることができる唯一の利点は、partial
への呼び出しを避けることです。なぜclojureスレッドは最後に( - >>)マクロですか?
(defn foldl [f acc xs]
(loop [acc acc
xs xs]
(if (empty? xs)
acc
(recur (f (first xs) acc) (rest xs)))))
(defn $ [f x] (f x))
(defn thread-last [x & rest]
(foldl $ x rest))
います:機能的/明示的なバージョンが失敗したときに
(thread-last (range 10)
(partial map inc)
(partial filter odd?)
(partial reduce +)) => 25
(->> (range 10)
(map inc)
(filter odd?)
(reduce +)) => 25
は、どのケースがありますか?
各フォームの先頭に「部分的」を貼り付けることができない場合や、このような場合に*有用な*を求めている場合がありますか? –
最初の部分は、部分的(または引数の配置のためにラムダ)を使用できないケースです。 – beoliver