Re:Roll a Lisp in C – Evaluation
by KineticLensman on Saturday May 07, 2022 @07:40AM
(#31293760)
> Quasiquoting means creating a list where some elements are evaluated at runtime
Take a look at the awesome 'Make A Lisp' (MAL), in particular the section on quoting:
https://github.com/kanaka/mal/blob/master/process/guide.md#s...
This has a fairly good description of what happens during quasi-quoting.
I don't recommend this; it is pretty awful, and mostly particular to the internal structure and conventions of its respective project.
The actual Lisp information sources, which are numerous, cover this ground more than adequately; there is no need to turn to the internal documentation of a polyglot mock Lisp.
Re:Roll a Lisp in C – Evaluation
by KineticLensman on Saturday May 07, 2022 @03:17PM
(#31297629)
> there is no need to turn to the internal documentation of a polyglot mock Lisp
Well, unless you want to be able to say "I have built a self-hosting Lisp from scratch, and I understand what it is doing". Including eval, quoting and tail recursion.
Getting my C# implementation of MAL to interpret itself was one of the most compelling learning experiences in my recent programming history.
Re:Roll a Lisp in C – Evaluation
by rags2riches on Saturday May 07, 2022 @05:16PM
(#31298684)
That's just how I remember how it went. Up until then, everything just flowed without any big problems.
Quasiquoting means creating a list where some elements are evaluated at runtime. Not dissimilar to string interpolation.