1
我正在使用外部庫,並將其傳遞給我編寫的函數。像這樣的事情,例如:Clojure - 更習慣於返回閉包,還是部分應用函數?
(ext-func my-func) ...
my-func
需要給予一定的數據做計算。我看到它的方式有兩種基本的選擇:
1)以這種方式寫my-func
,它接受我的數據並返回一個函數,然後通過閉包將數據綁定到外部庫調用它。例如:
(defn my-func
[mydata]
(fn []
(... access to mydata via closure ...)))
(ext-func (my-func somedata))
2)不要從my-func
返回功能,但數據綁定到它時,我把它傳遞給ext-func
:
(defn my-func
[mydata]
(... evaluate, use mydata, etc.))
(ext-func (partial my-func somedata))
我想使用哪一個可以通過怎樣回答我打算使用該功能,否則。例如,如果我要在其他地方使用它,我可能不想返回一個函數。但是,所有其他的東西都是相同的......
......這些是哪種更習慣的方法?
使用fn的一個好處是你可以提供一個符號作爲第一個參數,然後出現在任何堆棧跟蹤中而不是部分。 – spieden