Используйте рекурсию.Это способ делать вещи в схеме / ракетке.И старайтесь никогда не использовать set!
и другие функции, которые изменяют переменные, если на самом деле нет другого выбора.
Вот пример учебника по рекурсии в Scheme:
(define factorial
(lambda (x)
(if (<= x 1)
1
(* x (factorial (- x 1))))))