Folds an iterator from the left

fun adder(x: Int, y: Int): Int do return x + y

var xs = [1..10]
assert xs.iterator.fold(0, &adder) == 55

Property definitions

functional :: iter_extras $ Iterator :: fold
        # Folds an iterator from the left
        #
        # ~~~~nitish
        # fun adder(x: Int, y: Int): Int do return x + y
        #
        # var xs = [1..10]
        # assert xs.iterator.fold(0, &adder) == 55
        # ~~~~
        fun fold(acc: Object, f: Fun2[Object, E, Object]): Object
        do
                for x in self do
                        acc = f.call(acc, x)
                end
                return acc
        end
lib/functional/iter_extras.nit:130,9--144,11