Write a function called reduce that applies a combiner function of 2 operands to successive elements of a
list and accumulates the result in a single scalar value. The combiner should first be applied to the first two
elements to get an initial accumulator value, and then the combiner should be applied to the accumulator
and successive elements of the list until the list is exhausted and the function returns the final accumulated
value. For example,
> (reduce + ’( 1 2 3 4 5))
> (reduce * ’( 1 2 3 4 5))
Show how to define factorial in terms of reduce.