From: <bri...@co...> - 2003-11-14 01:53:05
|
Hello -- I have recently discovered Luna Scheme. I have it building in the IDE on windows and I fixed a bug in named 'let' so that NOW (let z ((x 3)) x) is equivalent to (letrec ((z (lambda (x) x))) (z 3)) I would like some help with the following problem: (let z ((x 5)) (if (= x 0) 1 (* x (z (- x 1))) )) results in 5 instead of the correct 120. My initial investigations lead me to examine the tail-recursion implementation (I hypothesize that z is being improperly converted to a tail-call). Anyone out there? Anyone interested in helping me? Dr. Brian Beckman Schemist since 1983 |