Clojure:从匿名函数返回一个向量

标签 clojure anonymous-function

我写了一个小的匿名函数,用于 map称呼。该函数返回一个向量,其中包含来自 SQL 结果集查询的列名和列值。

这是函数(输入是列名):

(fn [name] [(keyword name) (.getObject resultset name)])

这工作正常,但是当我尝试使用匿名函数的“简化”版本时,出现错误:
#([(keyword %) (.getObject resultset %)])

java.lang.IllegalArgumentException: Wrong number of args (0) passed to: PersistentVector

这是map称呼:
(into {} (map (fn [name] [(keyword name) (.getObject resultset name)]) column-names))

是否可以为此函数使用简化的语法?如果是这样,如何?

谢谢。

最佳答案

您的问题是简单的语法试图将向量评估为函数调用。

您可以插入一个“身份”函数以使其工作,因为这只是一个简单的函数,它将返回不变的向量:

#(identity [(keyword %) (.getObject resultset %)])

关于Clojure:从匿名函数返回一个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921566/

相关文章:

匿名函数中的 Javascript 游戏循环状态

php - 为什么要使用匿名函数?

java - 如何调用StaticMethodExpr.eval?

clojure - 从 REPL 中调用黑色页面

emacs - 有没有办法在 nrepl 中进行历史搜索?

Javascript匿名函数问题

function - 创建函数字典的更好方法

clojure - Clojure 中函数参数的求值顺序

clojure - 如何使 leiningen 2 尊重 maven settings.xml 文件中的本地存储库路径?

javascript - 赋值运算符(对象 fn)两侧都有 fn 的名称 name 有什么值(value)?