I don't think rfn will help here. rfn is useful for macros to prevent shadowing self and perhaps some obscure tricks involving mutually recursive nested lambdas.
However in your case you can get rid of let with a simple function call:
Of course - I do that in JavaScript all the time. Thx for the tip. Of course, I still want to be able to define a lambda that is bound to a name that also calls itself by the name instead of using self within and the name outside.
Looks that way. :) This is why I think arc.arc should look like:
(mac rfn yadda yada
"Recursive FN: an anonymous function that can call itself"
...implementation...)
FYI, CL is funny, both flet and labels elt us give names to loacl functions, but only those declared with labels can be called recursively. I wonder why flet got kept, backwards compatibility?