5.12 recur
(recur id ([id expr] ...) expr) |
A short-hand recursion construct. The first id corresponds to
the name of the recursive function. The parenthesized ids are
the function’s arguments, and each corresponding expr is a
value supplied for that argument in an initial starting call of the
function. The last expr is the body of the function.
More precisely, a recur form
(recur func-id ([arg-id arg-expr] ...) |
body-expr) |
is equivalent to
((local [(define (func-id arg-id ...) |
body-expr)] |
func-id) |
arg-expr ...) |