Apropos of nothing, if you surround the body of FAC with (let ((fac
fac)) ...) or even (let loop ((n n)) ...) then you avoid a global
lookup on FAC on every recursive call.  This is the same as compiling
the file in block mode, except the latter doesn't work for exported
definitions.  This is something most people here probably know, but
it's an interesting optimization trick that took me a while to come
across.

On 1/9/07, Daniel Sadilek <[EMAIL PROTECTED]> wrote:
(define (fac n)
  (if (zero? n)
      1
      (* n (fac (- n 1))) ) )


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to