Show that sum and product are both examples of accumulation
Since the only parameter that changes in your recursive definition is a, you can write an inner definition like so:

(define (accumulate combiner null-value term a next b)
  (define (rec a)
    (if (&gt; a b)
        null-value
        (combiner (term a) (rec (next a)))))
  (rec a))