recursion - Clojure 递归函数

标签 recursion clojure split concatenation

作为一个 Clojure 新手,我被这个小问题困扰着:

我想遍历序列并执行 split,然后对序列元素执行 str(串联)函数。

这是我的顺序:

(("2.660.784") ("2.944.552") ("44.858.797"))

我想要得到的是这样的:

("2660784" "2944552" "44858797")

这是我为我的问题创建递归解决方案的尝试:

(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)))
          )))

当然,这不是解决方案,因为它仅将 splitstr 应用于一个元素,但我想对 中的每个元素重复此操作>序列序列 是我项目中其他一些函数的产物。

我肯定遗漏了一些东西,所以请帮我解决这个问题......

最佳答案

最简单的写法是用replace,而不是split/str。一旦您编写了可以对单个字符串执行此转换的函数,您就可以使用 mapfor 对字符串序列执行此操作。在这里我不得不稍微解构一下,因为无论出于何种原因,序列中的每个元素本身都是另一个序列;我刚刚取出了第一个元素。

(for [[s] '(("2.660.784") ("2.944.552") ("44.858.797"))]
  (clojure.string/replace s #"\b\.\b" ""))

关于recursion - Clojure 递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787741/

相关文章:

java - 无限递归!如何转换?

python - 函数调用中明显差异的解释

json - 如何在httpkit中将Content-Type设置为application/json

unit-testing - 如何测试 Clojure 中抛出的异常?

java - Apache Camel Message Exchange - 您能否迭代交换以从交换中的单个消息生成多个输出文件

无法理解这是如何工作的

java - 未知的 Java 递归错误

json - JQ 无法解析 Unicode 表情符号字符。它是有效的 JSON 吗?

php - 将字符串拆分为数字和文本,但接受内部包含单个数字的文本

python - 根据预定义的字符类型拆分字符串