So I finally understand the phrase "one advantage of Racket's macro system is that macros can communicate". I never understood wtf that meant until today when going through https://school.racket-lang.org/2019/plan/fri-mor-lecture.html and the section on syntax-local-value.
That's what it means, right there. That's how macros can communicate.
@cwebber i assume this is a macro defining macro defining a local macro? But, unholy tsunami! Wtf
@cwebber I just see a wall of text that is meaningless to me. I /never/ could figure out Scheme's macro system, much less most refinements of it.
I know Rust's macros are in part influenced by Scheme's, and surprise! I have problems understanding them too.
what i get from this is that scheme has to go to some pretty dramatic lengths to preserve all the freedom to intermingle compilation and interpretation in the way lisp programmers always expect to, while also being safe to use in batch mode, with a rigid wall between compilation and runtime, in the way that everyone is taught that languages must be used nowadays because interactive programming environments are bad or something i dunno 🤷♀️