A few minutes ago, Sam Tobin-Hochstadt wrote: > On Tue, Oct 16, 2012 at 3:39 PM, Eli Barzilay <e...@barzilay.org> wrote: > > A few minutes ago, Sam Tobin-Hochstadt wrote: > >> On Tue, Oct 16, 2012 at 3:10 PM, Eli Barzilay <e...@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! _________________________ Racket Developers list: http://lists.racket-lang.org/dev