每当我需要逐个处理项目(就像reduce
),累积某种结果(就像reduce
),但是根据先前项处理序列(不同于reduce
)时,经常需要一种扩展的reduce
。
例如(一个愚蠢的例子),如果当前项目和上一个项目都是偶数,则将1添加到累加器中,如果它们是奇数,则减去1。这只是一个愚蠢的情况,但我经常遇到这种问题。我通常使用一个向量作为累加器,以便第一个项目是真正的聚合,第二个项目是先前的项目。这不是非常优雅,而且显然冗长。
是否有核心函数可以帮助处理这些情况?最惯用的处理方法是什么?谢谢