6
下面的工作:如何通過Java方法序列映射到執行
(map #(%1 "21") [identity])
但是下面的代碼失敗
(map #(%1 "21") [.toString])
如何創建Java方法一序列/集合?
下面的工作:如何通過Java方法序列映射到執行
(map #(%1 "21") [identity])
但是下面的代碼失敗
(map #(%1 "21") [.toString])
如何創建Java方法一序列/集合?
Java方法不是像clojure中的函數一樣的頭等公民。您不能將java方法作爲參數傳遞,返回或存儲在變量和集合中。但是你可以通過memfn或原包裝的方法調用
(map #(%1 21) [(memfn toString)])
=> ("21")
(map #(%1 21) [#(.toString %)])
=> ("21")
你已經得到了答案只是匿名函數來創建功能,但我最關注的使用情況下,導致你要問的問題。我似乎無法找到一個。我寧願將它們「壓縮」在一起以構建一個執行的函數。 – 2013-03-06 04:15:58