シーケンス内の連続した等しいエントリの数を計算する関数が必要です。たとえば、(連続する "abcdefg") は 0 を返し、(連続する "aabcdddefg") は 3 を返す必要があります。
私がそれを書いた方法は慣用的ですか、それとも改善できますか?
(defn consecutive [p]
(second (reduce
#(vector %2
(if (= (first %1) %2)
(inc (second %1))
(second %1)))
[nil 0]
p)))