Clojure将2d元素连接成相同的字符串

时间:2015-09-25 13:38:24

标签: clojure

我的数据格式如下:

[[123][124][125][126][127]]

我最终希望生成一个看起来像

的字符串
123,
124,
125,
126,
127

所以我需要迭代向量,对元素应用“,\ n”,然后从最后一个中删除“,\ n”(或者甚至不首先添加它)

我尝试了以下内容(数据是[[123][124][125][126][127]]向量):

(mapv (fn [inner] (mapv #(str  % ",\n") inner)) data)

产生:

[[123,
] [124,
] [125,
] [126,
] [127,
]]

我真的不想做一个替换语句来从String中删除[],但是我再次对在映射之前如何将数据转换为更好的格式感到困惑。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

user>(def data [[123][124][125][126][127]])
;; => #'user/data
user> (clojure.string/join ",\n" (flatten data))
;; => "123,
124,
125,
126,
127"

答案 1 :(得分:0)

试试这个:

(clojure.string/join ",\n" (mapv #(clojure.string/join ",\n" %) data))