[racket-dev] [plt] Push #25466: master branch updated

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Tue Oct 16 15:44:34 EDT 2012

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.
-- 
sam th
samth at ccs.neu.edu

Posted on the dev mailing list.