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.

Reply via email to