[racket-dev] [plt] Push #25466: master branch updated
A few minutes ago, Sam Tobin-Hochstadt wrote:
> On Tue, Oct 16, 2012 at 3:39 PM, Eli Barzilay <eli at barzilay.org> wrote:
> > A few minutes ago, Sam Tobin-Hochstadt wrote:
> >> On Tue, Oct 16, 2012 at 3:10 PM, Eli Barzilay <eli at barzilay.org> wrote:
> >> > Just now, Jay McCarthy wrote:
> >> >> match-define is something else
> >> >
> >> > Indeed it is -- which makes the whole thing even more
> >> > confusing. I can't help imagining a newbie's reaction when
> >> > they're told that
> >> >
> >> > Oh, here's your mistake -- you've used match-define where you
> >> > should have used define/match.
> >> >
> >> >
> >> > IMO, this is bad enough to withdraw it if there's no good name
> >> > for it.
> >>
> >> I think both names are in keeping with the appropriate
> >> conventions -- `match-define` is a variant of `define` but with
> >> patterns in the binding positions, just like `match-let` and
> >> `match-lambda` etc. I don't think this is any different from
> >> `regexp-match` vs `regexp-match*`, for example.
> >
> > Yes, both names follow conventions, only different ones. It's the
> > mixture of convention that make the above newbie situation look so
> > ridiculously confusing.
>
> Unfortunately, we have only one thing we can vary here -- the name.
> So while I'd be happy to hear better names for `define/match`, it
> would be wrong to call it `match-define`, and it's a valuable form
> and I plan to keep it.
Yes, the name is what should vary here, I had nothing to say about
what it does. Please¹⁷ change it. Even a `match-define*' would be
better than `define/match'.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!