(define (fact x) (if (= x 0) 1 (* x (fact (- x 1))))) (define (fact x) (define (fact-tail x accum) (if (= x 0) accum (fact-tail (- x 1) (* x accum)))) (fact-tail x 1)) (fact 3) ;cont ;acc (fact-tail (- 3 1) (* 3 1)) 2 3 (fact-tail (- 2 1) (* 2 3)) 1 6 (fact-tail (- 1 1) (* 1 6)) 0 6 (fact-tail (- 0 1) (* 0 6)) -1 base-case: return 6