如何转换
((((3 5 6) 3 4) 4) 3 5 3)
到
(n n n 3 5 6 n 3 4 n 4 n 3 5 3)
?我问这个是因为我怀疑这个解决方案会加速拼合算法。
编辑:我想这里要问的真正的问题是一个括号是否可以被视为clojure中的原子,或者更广泛地说是lisp。
答案 0 :(得分:1)
这是一个例子
(loop [[x & xs :as xxs] '((((3 5 6) 3 4) 4) 3 5 3)
acc []]
(if (seq xxs)
(if (sequential? x)
(recur
(concat ['n] x ['n] xs)
acc)
(recur xs
(conj acc x)))
acc))