Lines 13–16 define a function sumSquares
that squares its second argument value
, adds that square and its first argument total
and returns the sum. Function accumulate
will pass each of the elements of the sequence over which it iterates as the second argument to sumSquares
in the example. On the first call to sumSquares
, the first argument will be the initial value of the total
(which is supplied as the third argument to accumulate
; 0
in this program). All subsequent calls to sumSquares
receive as the first argument the running sum returned by the previous call to sumSquares
. When accumulate
completes, it returns the sum of the squares of all the elements in the sequence.