Function that multiplies all numbers between "a" and "b" with do loop
You can use a do loop without using set!.

(define (product-of-range x y)
  (do ((result 1 (* result i))
       (i x (+ i 1)))
      ((&gt; i y) result)))