我只是學習Clojure的Python程序員。在Python我愛我如何使用命名參數在調用functools.partial:部分和命名參數Clojure中
def pow(base, exponent):
return base ** exponent
exp = partial(pow, 2.71828) # exp(2) --> 7.3886
square = partial(pow, exponent=2) # square(2) --> 4
的exp
的實現是很明顯的Clojure相當於 - 但是我可以用partial
定義square
簡潔,太?有沒有辦法將關鍵字/命名參數傳遞給partial,以便預先確定一個特定的參數?或者,這不得不由partial
來處理,而是函數文字,例如#(pow % 2)
?
簡短的回答:這是不是習慣。 Clojure傾向於通過參數計數進行調度與JVM可以有效實現的內容有關(解構的成本比較昂貴得多);你從中得到的越多,代碼越受影響。 – 2013-03-27 02:31:14