I see. Thank you for the clear and detailed explanation!
On Friday, August 2, 2019 at 8:37:15 AM UTC-4, Matthew Flatt wrote:
>
> This is certainly confusing.
>
> The missing piece of the puzzle has to do with expansion in an
> immediate module body. In that context, the macro expander adds the
This is certainly confusing.
The missing piece of the puzzle has to do with expansion in an
immediate module body. In that context, the macro expander adds the
module's "inside-edge" scope (unshifted) to the result of any macro
expansion. So, the expander is adding back the inside-edge scope that
I think I found a case where id-a binds id-b when (would-bind? id-a id-b)
returns #f:
(define-syntax bind-test0
(lambda (stx)
(define id #'x)
(define shifted-id (syntax-shift-phase-level id -1))
(displayln (would-bind? id shifted-id))
(syntax-case stx ()
[(_ e)
At Thu, 25 Jul 2019 18:55:18 -0700 (PDT), Yongming Shen wrote:
> Based on my understanding, (bound-identifier=? id-a id-b) only returns true
> if id-a would bind id-b AND id-b would bind id-a. Also based on my
> understanding, id-a will bind id-b doesn't imply that id-b will bind id-a.
> So, if
Hi there,
Based on my understanding, (bound-identifier=? id-a id-b) only returns true
if id-a would bind id-b AND id-b would bind id-a. Also based on my
understanding, id-a will bind id-b doesn't imply that id-b will bind id-a.
So, if I only want to check whether id-a will bind id-b, which
5 matches
Mail list logo