【发布时间】:2016-12-25 21:10:02
【问题描述】:
我能看到的唯一好处是它意味着人们可以避免调用partial。
(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
是否存在函数式/显式版本失败的情况?
【问题讨论】:
-
您是在询问在每个表格的开头粘贴
partial不起作用的情况,还是在询问有用这样的情况? -
第一个,因为在这种情况下不能使用部分(或用于参数放置的 lambda)。