最近在看<<Clojure編程>>對第二章中的partial函數比較迷惑,因爲書上的例子沒看懂.第二天百度居然搜不到,可見Clojure這類的小衆語言用的人還是不多.
幸虧python中也有這個函數,搜索了一下後再結合書的內容明白了,其實partial起到一個預先爲某函數加上個別參數的功能,等到函數正式被調用的時候把剩下的參數補上即可.
這是python的例子:
from functools import partial
def func (a, b):
return a*b;
foo = partial(func, 2)
foo(3) # 6
Clojure的例子:
(def show-str
(partial #(str % %2 %3) 11 22)
)
(show-str 33)
;= '112233'