(let fac ([n 10]) (if (zero? n) 1 (* n (fac (sub1 n))))) Interesting, I've never seen this style of let before. I believe it's Scheme-only.