自作schemeで計算に消費されるconsとnumberを数えてみました。
(define (fib n)
 (cond
  ((= n 0) 0)
  ((= n 1) 1)
  (else (+ (fib (- n 1))
       (fib (- n 2)) ))))

(fib 10)=>55
コンパイル前
cell 13471
num  2784
コンパイル後
cell 5704
num 1032

(fib 25)=>75025
コンパイル前
cons 18495431
num 3820480

コンパイル後
cons 7808734
num 1410346

この無駄なオブジェクトの量産を抑止したいんだけど、
どんな手がありますか?