对你的问题没有单一,明确,明确的答案.
可以说计数器是每次验证给定事件时递增的变量(例如,当迭代数组时,每次遇到数字5时,您可以将计数器递增1).
这个概念可能会被推广,因为在每一步中都有一些计数器增加2,或3或任何你想要的值;但是,如果步骤并不总是相同的话,计数器的语义通常会失去意义.这取决于你的程序的逻辑,最后:如果你正在跟踪酒店的单人和双人房间,你的numGuests计数器可以以1和2的步长递增,具体取决于你正在处理的房间.给定时刻,但可以说最终这只是为了清晰或简洁,因为结果与将它递增1,两次相同!
相反,累加器是一个变量,例如,存储数组元素的总和(即,您没有固定的步长,但增量会根据您遇到的元素而变化).
该概念可以针对项目列表进行推广,将给定函数f重复应用于累加器的实际值和列表的下一项,将结果保存在我们的累加器中.通过这种方式,我们获得了fold high-order function的语义(其中一个其他名称实际上已经累积).如果我们将分析限制为所谓的左折叠,则累加器会在每个时刻存储一个中间结果,对您已处理的子集有效.
如果你有一个名为total的累加器,起始值为0,并且一个数组包含一年中12个月的销售额,那么将这个定义与(加法)一起应用为f,将使你在第n步销售在今年的前n个月.
您的示例看起来很好,因为它们严格遵守累加器和计数器的这些定义.