3
如果我有一個計算結果爲功能Clojure的功能讓我們結合
(defn func1 [c1 c2]
(fn [x1 x2]
...do some stuff with c1 c2 x1))
,我在地圖上的其他地方使用或減少的功能,是它更好地使用內聯
(defn func2 [x y z]
(reduce (func1 x y) z (range 20)))
或讓其綁定第一
(defn func2 [x y z]
(let [ffunc (func1 x y)]
(reduce ffunc z (range 20))))
在第一種情況下,超過x和y的新函數生成的每個步長t我會擔心通過減少。
是的,這正是我一直在尋找的。從來沒有想過用副作用來測試它。謝謝。 –
請注意,實例化函數通常都很便宜,所以即使分配了多個函數,也不會有什麼大不了的。很顯然,你可以構造構建起來很昂貴的函數,但並不是每次都必須重新編譯函數(我提到這一點是因爲新手每次構建函數時都會關閉它們編譯的東西)。 – amalloy