假设
但如果我使用
files
是Clojure中Java File
的一个列表,我想获取文件名列表。在Leiningen REPL中,我可以使用以下命令:(.getName (nth files 4))
=> "image.jpg"
但如果我使用
(map .getName files)
REPL抛出了一个CompilerException java.lang.RuntimeException: Unable to resolve symbol: .getName in this context
。为什么会这样呢?
我可以通过以下方式解决这个问题:
(defn gn [file] (.getName file))
(map gn files)
但我想知道是否有一种更优雅的方式将Java方法映射到Clojure中的列表。
#()
,因为它已经成为一个不必要的便利。如果从一开始就有#()
符号,那么memfn
就不会被添加到核心中-所以它可能不是一个强烈的废弃。 - glts