想象一下我有一个类似的列表
(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"