Clojure: reduza com três parâmetros

Eu frequentemente me vejo precisando de um tipo dereduce sempre que preciso processar um item no tempo (como reduzir), acumulo algum tipo de resultado (como reduzir) mas faço o processo com base no item anterior da sequência (ao contrário de reduzir).

Por exemplo (um tolo), adicione 1 ao acumulador se tanto o item atual quanto o anterior forem par e subtrair um deles são ímpares. Este é apenas um caso estúpido, mas eu me deparo com esse tipo de problema com freqüência. Eu geralmente faço um vetor como acumulador, de modo que o primeiro item é a agregação real e o segundo é o item anterior. Isso não é muito elegante e certamente detalhado.

Existe uma função central para ajudar nesses casos? Qual é a maneira mais idiomática de lidar com esse problema? obrigado

questionAnswers(2)

yourAnswerToTheQuestion