Vector 在clojure中连接字符串向量列表

Vector 在clojure中连接字符串向量列表,vector,clojure,Vector,Clojure,如果我有: (["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"]) 我如何获得: "aa=AA&bb=BB&cc=CC" 是否有连接功能可用?您可以按如下方式实现它: (def concatenate (comp (partial apply str) flatten)) 然后: user> (concatenate '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"])

如果我有:

(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"])
我如何获得:

"aa=AA&bb=BB&cc=CC"

是否有连接功能可用?

您可以按如下方式实现它:

(def concatenate (comp (partial apply str) flatten))
然后:

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

您可以按如下方式实施:

(def concatenate (comp (partial apply str) flatten))
然后:

user> (concatenate '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"]))
aa=AA&bb=BB&cc=CC
concat
将在一个级别上“展平”嵌套序列:

(apply concat '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"]))
;; => ("aa=AA" "&" "bb=BB" "&" "cc=CC")
然后,您可以使用
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"
concat
将在一个级别上“展平”嵌套序列:

(apply concat '(["aa=AA"] ["&"] ["bb=BB"] ["&"] ["cc=CC"]))
;; => ("aa=AA" "&" "bb=BB" "&" "cc=CC")
然后,您可以使用
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"
只是为了好玩: 您还可以使用
map
函数的行为进行此操作

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
函数的行为进行此操作

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"