now I just give up.
You need parenthesis around (n - 1). That's just how it works. As a lisper you should already be comfortable with Lots of Idiotic Superfluous Parentheses!
>>7 That's the idea, yeah. Now, the grown-up version of closures used in other languages has it so that you freeze functions in place with access to all of the variables they could get at when they were first made into a closure. If dynamic scope is used, this can have a
lot of consequences.