[racket-dev] [plt-scheme] Bug or misuse? match-expander ids not properly working (patch)
20 minutes ago, J. Ian Johnson wrote:
> That behavior would be really spooky to me. I would expect binding
> positions to not depend on any environmental information.
(It's still the same, only the definition of what is a binding
position is a bit different.)
> Perhaps have an (id _) form that would allow putting your special
> identifiers there.
And, Carl Eastlund wrote:
> If we add some kind of id expanders for match patterns, we need to
> add a way for pattern variables to shadow these names if the author
> really wants to. Otherwise, every id expander defined eats up more
> namespace that match variables cannot bind.
>
> We already have this issue with _ and ..., but at least that's a
> known set of constant size.
Some (id <name>) be possible, but definitely an overkill for the
purpose of `null' etc. Like I said, there should be *very* few of
them in `#lang racket'. The rest are for your own convenience, as in
Madoka's case (and in a few cases I ran into). I could obviously
define and provide a match expander for `x' in my library that you'll
want to use -- but that's the same as providing you with my own `if'.
The bottom line is that if this change is done, then such an `id' form
would not be necessary -- either it's for obvious names (the few that
are done in the library), or for names that you defined which you're
supposed to know about.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!