Мit*_*tke 2 recursion split concatenation clojure
作为一个Clojure新手,我对这个小问题感到困扰:
我想迭代一个序列并在序列元素上执行a split,然后执行str(连接)函数.
这是我的序列:
(("2.660.784") ("2.944.552") ("44.858.797"))
Run Code Online (Sandbox Code Playgroud)
我想得到的是这样的:
("2660784" "2944552" "44858797")
Run Code Online (Sandbox Code Playgroud)
这是我为我的问题创建递归解决方案的尝试:
(defn old
[squence]
(let [size (count squence)]
(loop [counter 1]
(if (<= counter size)
(apply str (clojure.string/split
(first (first squence))
#"\b\.\b"
))
(old (rest squence)))
)))
Run Code Online (Sandbox Code Playgroud)
当然,这是因为它应用的是不是一个解决方案split,并str只有一个元素,但我想重复这一过程中的每个元素squence.这squence是我项目中其他一些功能的产物.
我肯定错过了一些东西所以请帮我解决这个问题......
编写它的最简单方法是使用replace而不是split/ str.一旦你编写了一个可以在单个字符串上进行这种转换的函数,你就可以使用map或者for对一系列字符串进行转换.在这里我不得不进行一些构造,因为无论出于何种原因,序列中的每个元素本身都是另一个序列; 我刚拿出第一个元素.
(for [[s] '(("2.660.784") ("2.944.552") ("44.858.797"))]
(clojure.string/replace s #"\b\.\b" ""))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |