reduce
lreduce takes three arguments:
la binary operator, say b, of type V « V ¨ V;
b should be associative: b(x, b(y, z)) = b(b(x, y), z)
la value u of type V
la list L = [x1, x2, x3, É, xn] of values of type V
lIt returns a single value of type V:
lIf L is empty, then the value returned is u.
lIf L is not empty, the value is
 b(Éb(b(b(u, x1), x2), x3), É, xn)