> In my experience, recursion is the hard part ...
My limited experience has been different. I've been trying to make time to learn Scheme lately, and recursion seems simple enough. You can just practice it until it makes sense. What I find difficult is understanding what symbols are and what single-quoting actually means. No Scheme book I've seen yet just comes out and actually tells you in plain language what a symbol is.
Single quoting lets you pass a list without evaluating it.
(car (eval '(a b c))) vs. (car (a b c))
Do the same thing.
Have you read SICP? Somewhere in the 1st-3rd chapter there's an explanation of first-order evaluation that scheme uses. Once you know how scheme evals sexps, it makes sense that quote skips some of the steps of evaluation.
I strongly recommend the SICP/Little Schemer/Seasoned Schemer if you haven't heard of them.
Thanks for the explanation of the single quote. Can I convince you to add something about what a "symbol" is (and if it's connected in some way to the single-quote mechanism)?
I've often wondered if purpose-building a tool for visualizing recursive processes would help.
They could call it Ponzi.