我需要一个函数来计算序列中连续相等条目的数量。例如,(consecutive "abcdefg") 应该返回 0,而 (consecutive "aabcdddefg") 应该返回 3。
我写它的方式是惯用的还是可以改进的?
(defn consecutive [p]
(second (reduce
#(vector %2
(if (= (first %1) %2)
(inc (second %1))
(second %1)))
[nil 0]
p)))