Clojure: Transforming Varargs But Keeping them Varargs

痴心易碎 提交于 2019-12-08 02:25:45

问题


I am working on a little pet project in Clojure. I have a function that I pass varargs:

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

But, do-something is expecting varargs, not a list object. In custom-transform

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

How do I preserve the "vararg"-iness of my args after applying a transformation?


回答1:


I think apply should do the trick:

(apply do-something new-args)

Your problem isn't specific to varargs. What you want to do is to call do-something, passing the elements of an array as the arguments to the function. This happens to be precisely what apply does.



来源:https://stackoverflow.com/questions/26021785/clojure-transforming-varargs-but-keeping-them-varargs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!