The accumulate procedure is also known as fold-right, because it combines the first element of the sequence with the result of combining all the elements to the right. There is also a fold-left, which is similar to fold-right, except that it combines elements working in the opposite direction:
Give a property that op should satisfy to guarantee that fold-right and fold-left will produce the same values for any sequence.