所以我试图解决这个问题,这是我想出的代码:
首先我有一个包函数,接收一个列表并将相同的元素分组到一个向量中。
(defn pack [lst]
(def a [])
(def vect [])
(cond
(empty? lst)
lst
:else
(loop [i 0]
(def r (get lst i))
(def t (get lst (+ i 1)))
(if (= r t)
(def vect (conj vect r))
)
(if (not= r t)
(and (def vect (conj vect r)) (and (def a (conj a vect)) (def vect [])))
)
(if (= i (- (count lst) 1))
a
(recur (inc i))
)
))
)
Run Code Online (Sandbox Code Playgroud)
例如,如果我有这个向量:
(def tes '[a a …Run Code Online (Sandbox Code Playgroud) clojure ×1