remove spaces around em dashes
This commit is contained in:
parent
aef8f3e7bd
commit
c3355f6df2
|
@ -303,12 +303,12 @@ it doesn't:
|
||||||
|
|
||||||
The @racket[see-button] inside macro @racket[m] comes from the
|
The @racket[see-button] inside macro @racket[m] comes from the
|
||||||
@racket[(for-syntax 'a)] import. For macro @racket[m] to work, it needs to
|
@racket[(for-syntax 'a)] import. For macro @racket[m] to work, it needs to
|
||||||
have @racket[button] bound at phase 0. That binding exists --- it's implied by
|
have @racket[button] bound at phase 0. That binding exists---it's implied by
|
||||||
@racket[(require 'a)]. However, @racket[(require 'a)] and
|
@racket[(require 'a)]. However, @racket[(require 'a)] and
|
||||||
@racket[(require (for-syntax 'a))] are @emph{different instantiations}
|
@racket[(require (for-syntax 'a))] are @emph{different instantiations}
|
||||||
of the same module. The @racket[see-button] at phase 1 only refers to
|
of the same module. The @racket[see-button] at phase 1 only refers to
|
||||||
the @racket[button] at phase 1, not the @racket[button] bound at
|
the @racket[button] at phase 1, not the @racket[button] bound at
|
||||||
phase 0 from a different instantiation --- even from the same source
|
phase 0 from a different instantiation---even from the same source
|
||||||
module.
|
module.
|
||||||
|
|
||||||
This kind of phase-level mismatch between instantiations can be repaired
|
This kind of phase-level mismatch between instantiations can be repaired
|
||||||
|
@ -329,8 +329,8 @@ Note that @racket[syntax-shift-phase-level] merely creates a reference
|
||||||
across phases. To make that reference work, we still need to instantiate our
|
across phases. To make that reference work, we still need to instantiate our
|
||||||
module at both phases so the reference and its target have their bindings
|
module at both phases so the reference and its target have their bindings
|
||||||
available. Thus, in module @racket['b],
|
available. Thus, in module @racket['b],
|
||||||
we still import module @racket['a] at both phase 0 and phase 1
|
we still import module @racket['a] at both phase 0 and phase
|
||||||
--- using @racket[(require 'a (for-syntax 'a))] --- so we have a phase-1
|
1---using @racket[(require 'a (for-syntax 'a))]---so we have a phase-1
|
||||||
binding for @racket[see-button] and a phase-0 binding for @racket[button].
|
binding for @racket[see-button] and a phase-0 binding for @racket[button].
|
||||||
Now macro @racket[m] will work.
|
Now macro @racket[m] will work.
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ By the way, what happens to the @racket[see-button] that's bound at phase 0?
|
||||||
Its @racket[#'button] binding has likewise been shifted, but to phase -1. Since
|
Its @racket[#'button] binding has likewise been shifted, but to phase -1. Since
|
||||||
@racket[button] itself isn't bound at phase -1, if we try to evaluate
|
@racket[button] itself isn't bound at phase -1, if we try to evaluate
|
||||||
@racket[see-button] at phase 0, we get an error. In other words, we haven't permanently
|
@racket[see-button] at phase 0, we get an error. In other words, we haven't permanently
|
||||||
cured our mismatch problem --- we've just shifted it to a less bothersome location.
|
cured our mismatch problem---we've just shifted it to a less bothersome location.
|
||||||
|
|
||||||
@interaction[
|
@interaction[
|
||||||
(module a racket
|
(module a racket
|
||||||
|
|
|
@ -523,7 +523,7 @@ binding at the run-time phase level relative to the module that
|
||||||
defines the macro.
|
defines the macro.
|
||||||
|
|
||||||
For instance, the @racket[swap-stx] helper function in the example below
|
For instance, the @racket[swap-stx] helper function in the example below
|
||||||
is not a syntax transformer --- it's just an ordinary function --- but it
|
is not a syntax transformer---it's just an ordinary function---but it
|
||||||
produces syntax objects that get spliced into the result of
|
produces syntax objects that get spliced into the result of
|
||||||
@racket[shell-game]. Therefore, its containing @racket[helper] submodule
|
@racket[shell-game]. Therefore, its containing @racket[helper] submodule
|
||||||
needs to be imported at @racket[shell-game]'s phase 1 with
|
needs to be imported at @racket[shell-game]'s phase 1 with
|
||||||
|
@ -535,7 +535,7 @@ returned by @racket[shell-game] is evaluated. In other words, a negative phase
|
||||||
level is a positive phase level from the opposite direction:
|
level is a positive phase level from the opposite direction:
|
||||||
@racket[shell-game]'s phase 1 is @racket[swap-stx]'s phase 0, so
|
@racket[shell-game]'s phase 1 is @racket[swap-stx]'s phase 0, so
|
||||||
@racket[shell-game]'s phase 0 is @racket[swap-stx]'s phase -1.
|
@racket[shell-game]'s phase 0 is @racket[swap-stx]'s phase -1.
|
||||||
And that's why this example won't work --- the @racket['helper] submodule
|
And that's why this example won't work---the @racket['helper] submodule
|
||||||
has no bindings at phase -1.
|
has no bindings at phase -1.
|
||||||
|
|
||||||
@codeblock|{
|
@codeblock|{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user