user=> (.trim " kkk ")
"kkk"
user=> (map .trim ["jjj " " llll" " o "] )
CompilerException java.lang.RuntimeException: Unable to resolve symbol: .trim in this context, compiling:(NO_SOURCE_PATH:1:1)
对此行为的任何解释?
我最终使用了clojure.string / trim。但想知道,这里的概率是什么?
答案 0 :(得分:4)
这有效:
(map #(.trim %) ["jjj " " llll" " o "] )
所以我猜.trim
是一种在形式之外没有意义的语法糖?
答案 1 :(得分:4)
您需要将.trim
包装在匿名函数中,以便map
获取第一类函数而不是成员函数:
(map #(.trim %) ["jjj " " llll" " o "])
或者,您可以使用memfn为您创建此第一类功能:
(map (memfn trim) ["jjj " " llll" " o "])
答案 2 :(得分:1)
你不能使用这样的成员函数。这不是Clojure功能。最简单的方法是使用闭包。
(map #(.trim %) [" aa " " bb "])
您还可以使用memfn将成员函数转换为Clojure函数。