2016-05-04 10 views
0

内の文字列のベクトルのリストを連結?Clojureの

(def concatenate (comp (partial apply str) flatten)) 

、その後:

user> (concatenate '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"])) 
aa=AA&bb=BB&cc=CC 

答えて

3

concatは、1つのレベルであなたのネストされたシーケンスを "フラット化" します:

(apply concat '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"])) 
;; => ("aa=AA" "&" "bb=BB" "&" "cc=CC") 

次にあなたがすることができ、次のようにあなたがそれを実装することができる

1

strを使用して、シーケンスからの文字列を連結します。

関数に合わせて
(apply str '("aa=AA" "&" "bb=BB" "&" "cc=CC")) 
;; => "aa=AA&bb=BB&cc=CC" 

(defn concat-str [s] 
    (->> s 
    (apply concat) 
    (apply str))) 

(concat-str '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"])) 
;; => "aa=AA&bb=BB&cc=CC" 
1

ちょうど楽しみのために: あなたもこの

user> (defn conc [items] (first (apply map str items))) 
#'user/conc 

user> (conc '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"])) 
"aa=AA&bb=BB&cc=CC" 
ため map機能の動作を使用することができます