Ваш вопрос немного расплывчатый. В частности, это звучит так, будто вам нужна система, которая моделирует рекурсивные вызовы без непосредственного выполнения рекурсивных вызовов, используя call / cc. Однако оказывается, что вы можете моделировать рекурсивные вызовы без выполнения рекурсивных вызовов, а также без использования call / cc. Например:
#lang racket
(define (factorial f n)
(if (= n 0) 1 (* n (f f (- n 1)))))
(factorial factorial 3)
Это может показаться обманом, но это основа Y комбинатора. Возможно, вы можете ужесточить набор ограничений, о которых вы думаете?
P.S .: если это домашнее задание, пожалуйста, процитируйте меня!