Der einzige Vorteil, den ich sehen kann, ist, dass man Anrufe zu partial
vermeidet.warum ist clojure thread zuletzt (- >>) ein Makro?
(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))
die gibt:
(thread-last (range 10)
(partial map inc)
(partial filter odd?)
(partial reduce +)) => 25
(->> (range 10)
(map inc)
(filter odd?)
(reduce +)) => 25
Gibt es Fälle, in denen eine funktionelle/explizite Version scheitern würde?
Fragen Sie nach Fällen, in denen das "Teilen" am Anfang jedes Formulars nicht funktioniert, oder fragen Sie nach * nützlichen * Fällen? –
der erste, wie in welchen Fällen konnte man nicht teilweise (oder ein Lambda für die Argumentation) verwenden. – beoliver