3

(require [clojure.java.shell :refer [sh]])clojureでrsyncバックアップを実行するために利用しようとしています。関数shは、文字列を次のような引数として受け取ります。

(sh "ls" "-las" "/home/")

ただし、データが文字列のベクトルとしてshに到着していることに気付き(例:["ls" "-las" "/ home /"])、これはもちろん失敗します。これは非常に簡単に解決できる問題のように思えますが、私はclojure(そしてLispと関数型プログラミング)を始めたばかりで、これを機能させることができないようです。ベクトルを処理してshに渡すにはどうすればよいですか?

アドバイスをいただければ幸いです。

4

1 に答える 1

3

使用する必要があるようですapply

(apply sh arg-vector)

このapply関数は他のLISPにも表示され、引数のリストを特定の関数に渡すことができます。seqClojureでは、リストだけでなく、ベクターを含む任意のオブジェクトに限定されません。

于 2012-09-10T01:07:04.960 に答える