在Clojure中映射列表时,如何将其与其他文本穿插?

想象一下我有一个像

(def nodes ["a", "b", "c"])

我想转换nodes成以下字符串:

a -> b -> c

我该怎么做?

(apply str (mapcat
             (fn [node]
               (str node " -> ")
               )
             nodes
             )
       )

结果是

"a -> b -> c -> "

我现在可以检查结果字符串是否以 结尾,->如果是,则删除最后一个->.

但这似乎不是很优雅。在 Clojure 中执行此操作的正确方法是什么?

更新 1:

(transduce
  (fn [rf]
    (fn
      ([] "")
      ([result] result)
      ([result input] (str
                        result
                        "->"
                        input))
      )
    )
   cat
   ""
   nodes
  )

结果是

"->a->b->c"

回答

(def nodes ["a" "b" "c"])

(clojure.string/join " -> " nodes) ;; => "a -> b -> c"


以上是在Clojure中映射列表时,如何将其与其他文本穿插?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>