6

以下将起作用:

(map #(%1 "21") [identity])

但是以下代码失败

(map #(%1 "21") [.toString])

如何创建 Java 方法的序列/集合?

4

1 回答 1

10

Java 方法不像 clojure 中的函数那样是一等公民。您不能将 java 方法作为参数传递、返回或存储在变量和集合中。但是您可以通过memfn或只是包装原始方法调用的匿名函数创建函数

(map #(%1 21) [(memfn toString)])
=> ("21")

(map #(%1 21) [#(.toString %)])
=> ("21")
于 2013-03-05T07:47:52.330 回答