Instead of declaring a local function, you can use let (http://docs.plt-scheme.org/reference/let.html)
e.g.:
> (let fac ([n 10])
(if (zero? n)
1
(* n (fac (sub1 n)))))
3628800