The author’s Scheme manpages project is pretty damn cool too: imagine being able to type man cons
Isn’t this the same as the concept of the reader and the evaluator in Lisp? Unless I’m misinformed, quasi-quotes are a reader-macro, so they evaluate at “compile-time”, and could as shown here cause cons or map to create “run-time” “constant” structures, right?
Quasiquotes are converted at compile-time to a run-time construction of the corresponding list. But a sufficiently smart compiler is allowed to do all the work at compile-time, instead, if it is able to. So (quasiquote (1 (unquote (cons 2 '())))) is allowed to expand to the literal (1 2).
(quasiquote (1 (unquote (cons 2 '()))))