I’m making a function that multiplies all numbers between an 1 input and a “x” input with dotimes loop. If you please, check my function and say what’s wrong since I don’t know loops very well in Scheme.
(define (product x)
(let ((result 1))
(dotimes (temp x)
(set! result (* temp (+ result 1))))
result))
Use recursion. It is the way to do things in Scheme/Racket. And try to never use
set!and other functions that change variables unless there really is no other choice.Here’s a textbook example of recursion in Scheme: