(defun trampoline (function &rest args)
  (loop :for fn = (apply function args)
          :then (funcall fn)
        :while fn))

(defun fizzbuzz (n limit)
  (when (<= n limit)
    ;; заменишь на свой fizz buzz
    (print n)
    (lambda () (fizzbuzz (1+ n) limit))))

(trampoline #'fizzbuzz 1 10)