New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
doc: revamp explanation of implicit begin #4146
base: master
Are you sure you want to change the base?
Conversation
Thanks to @rmculpepper for the initial improvement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this! I just noticed a few places where the words should be slightly different.
@@ -64,6 +56,22 @@ positions, instead of forming an expression, the content of | |||
This splicing behavior is mainly useful for macros, as we discuss | |||
later in @secref["macros"]. | |||
|
|||
The whole @racket[_body] sequence is sometimes said to have an @deftech{implicit begin}. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why sometimes? Probably best to always or never (at least in the documentation we control).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I'm not sure it's clear that the metavariable body
here refers to internal-definition contexts, so maybe The whole @racket[_body] sequence of an internal-definition context
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One complication is that the Racket Guide doesn't really define what internal-definition context is, so I've been avoiding it. But perhaps we should define it, perhaps in the section "Internal Definitions".
The whole @racket[_body] sequence is sometimes said to have an @deftech{implicit begin}. | ||
The restriction of an @tech{implicit begin} follows the restriction of the @racket[_body] sequence: | ||
the sequence should end with an expression. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An implicit begin is restricted in the same way as a @racket[_body]; it must end with an expression.
@@ -194,10 +194,10 @@ equivalent to a @racket[define-values] form with a single @racket[_id]. | |||
|
|||
When the grammar for a syntactic form specifies @racket[_body], then | |||
the corresponding form can be either a definition or an expression. | |||
A definition as a @racket[_body] is an @defterm{internal definition}. | |||
A definition as a @racket[_body] is an @deftech{internal definition}. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"A definition in", I'd say.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you treating the metavariable body
as the whole sequence? IIUC, elsewhere, the metavariable body
is treated as a single form in the sequence (hence the usage of @racket[body]s
in various places). So I think "a definition as a @racket[_body]" is correct already.
@racket[begin] form is equivalent to splicing the @racket[form]s into | ||
the enclosing context. | ||
The @tech{internal-definition context} itself is said to have an | ||
@deftech{implicit begin} of this first form. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"of the first form" is correct, but how about "The internal-definition context itself is treated as a begin containing definitions" or something more like that?
Thanks to @rmculpepper for the initial improvement.
I end up explaining it a bit differently in a way that I think flows a bit better. Let me know if there's any inaccuracy.
cc: @mflatt, @rmculpepper
Related to #2696