Clojure:转变Varargs但保持Varargs

时间:2014-09-24 16:16:29

标签: clojure variadic-functions

我正在Clojure做一个小宠物项目。我有一个函数,我通过varargs:

(defn foor [bar & args]
  (let new-args (custom-transform args)]
    (do-something new-args))))))

但是,do-something期待varargs,而不是列表对象。在custom-transform

(defn custom-transform [& args]
    (if vars vars nil))

如何在应用转换后保留" vararg"我的args?

1 个答案:

答案 0 :(得分:1)

我认为应该应该做的伎俩:

(apply do-something new-args)

您的问题并非特定于varargs。你想要做的是调用do-something,传递数组的元素作为函数的参数。这恰好是apply所做的。