如何映射要执行的Java方法的序列

时间:2013-03-05 07:41:48

标签: clojure

以下内容可行:

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

但是以下代码失败

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

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

1 个答案:

答案 0 :(得分:10)

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

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

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