用原子代替内支架

时间:2015-04-17 11:22:24

标签: list clojure brackets

如何转换

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

1 个答案:

答案 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))