An alternative answer to the implied question: "How do I learn the core of the language-oriented features of Racket?"
Check out Beautiful Racket: https://beautifulracket.com - Dan On Fri, Nov 12, 2021 at 2:03 PM Philip McGrath <[email protected]> wrote: > On Thu, Nov 11, 2021 at 9:20 PM Yushuo Xiao <[email protected]> wrote: > >> Thank you very much! I didn't know the set is not fixed. And thinking of >> them as an IR really helps. >> >> On Friday, November 12, 2021 at 12:15:39 AM UTC+8 johnbclements wrote: >> >>> That’s a true statement… but that set is by no means fixed. >>> >> > To nitpick a little, while it's true that the set of forms allowed in > fully expanded programs is not fixed, the last change was in Racket 6.3, > adding `(quote-syntax datum #:local)` and removing > `letrec-syntaxes+values`: > https://docs.racket-lang.org/reference/syntax-model.html#%28part._fully-expanded%29 > > So, while not fixed, they are in fact quite stable, and the list of > identifiers is exposed through APIs like the `kernel-literals` > <https://docs.racket-lang.org/syntax/Library_Syntax_Classes_and_Literal_Sets.html#%28form._%28%28lib._syntax%2Fparse..rkt%29._kernel-literals%29%29> > literal set for `syntax-parse` and, at a lower level, > `kernel-form-identifier-list` > <https://docs.racket-lang.org/syntax/syntax-helpers.html#%28def._%28%28lib._syntax%2Fkerncase..rkt%29._kernel-form-identifier-list%29%29> > and the `syntax/kerncase` > <https://docs.racket-lang.org/syntax/syntax-helpers.html#%28mod-path._syntax%2Fkerncase%29> > module. Authors of advanced macros that use `local-expand` and friends need > a general awareness of their shapes, e.g. to recognize definitions, splice > `begin`s, or recur into local binding forms, so changes have to be > unobtrusive to avoid breaking compatibility. > > If you're interested in the low-level internals of Racket, you may also > want to read the manual section on Linklets and the Core Compiler > <https://docs.racket-lang.org/reference/linklets.html>. > > -Philip > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/0100017d121a0121-031c9bd8-10ec-45b2-84b3-91c93d4e19bc-000000%40email.amazonses.com > <https://groups.google.com/d/msgid/racket-users/0100017d121a0121-031c9bd8-10ec-45b2-84b3-91c93d4e19bc-000000%40email.amazonses.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CAFKxZVVRy_KiT_trbN-KkrHbP5jeAm5zdAX_Jv8V-mM88t0oSg%40mail.gmail.com.

