得到这样的东西的惯用方法是什么?
(fn [coll] (function body) [1 0 -1 -1 -1 0 0 0 0 1 1 1 1 1 0 1 -1])
-> [1 1 3 2 1 4 3 2 1 5 4 3 2 1 1 1 1]
我只能这样做。
(fn [coll]
(loop [i 0 r []]
(if (< i (count coll))
(let [elem (nth coll i)
cc (loop [j 1]
(if (< (+ i j) (dec (count coll)))
(let [nelem (nth coll (+ i j))]
(if (= elem nelem)
(recur (inc j))
j))
j))]
(recur (inc i) (conj r cc)))
r)))