String 如何在clojure中将字符串向量传递给java.shell?

String 如何在clojure中将字符串向量传递给java.shell?,string,vector,clojure,String,Vector,Clojure,我试图利用(需要[clojure.java.shell:refere[sh]])在clojure中执行rsync备份。函数sh将字符串作为参数,例如: (sh "ls" "-las" "/home/") 但是,我发现自己将数据作为字符串向量(例如[“ls”“-las”“/home/”])到达sh,这当然失败了。这似乎是一个非常容易解决的问题,但我刚刚开始使用clojure(以及lisp和函数式编程),我似乎无法实现这一点。如何处理向量以传递给sh 任何建议都将不胜感激。听起来您需要使用: ap

我试图利用
(需要[clojure.java.shell:refere[sh]])
在clojure中执行rsync备份。函数sh将字符串作为参数,例如:

(sh "ls" "-las" "/home/")
但是,我发现自己将数据作为字符串向量(例如[“ls”“-las”“/home/”])到达sh,这当然失败了。这似乎是一个非常容易解决的问题,但我刚刚开始使用clojure(以及lisp和函数式编程),我似乎无法实现这一点。如何处理向量以传递给sh


任何建议都将不胜感激。

听起来您需要使用:

apply
函数也会在其他Lisp中弹出,允许您将参数列表传递给给定函数。在Clojure中,您不仅限于列表,还包括任何可启用的对象,包括向量

(apply sh arg-vector)