是否可以在Clojure中爲匿名函數做var args?如何將var args傳遞給Clojure中的匿名函數?
例如,我怎麼轉:
(#(reduce + (map * %1 %2 %3)) [1 2 3] [4 5 6] [7 8 9])
成類似,
(#(reduce + (map * [& args])) [1 2 3] [4 5 6] [7 8 9])
是否可以在Clojure中爲匿名函數做var args?如何將var args傳遞給Clojure中的匿名函數?
例如,我怎麼轉:
(#(reduce + (map * %1 %2 %3)) [1 2 3] [4 5 6] [7 8 9])
成類似,
(#(reduce + (map * [& args])) [1 2 3] [4 5 6] [7 8 9])
這解決了這個問題:
user> ((fn[& args] (reduce + (apply map * args))) [1 2 3] [4 5 6] [7 8 9])
270
或
user> (#(reduce + (apply map * %&)) [1 2 3] [4 5 6] [7 8 9])
270
非常感謝Guillermo! – jeemar