On 05/03/2013 09:12 AM, Eli Barzilay wrote:
A few minutes ago, Robby Findler wrote:
Given that we don't yet even have a prototype of racket2, I'm going
to guess that "near" isn't all that near. IMO, there are other big
things that we should be focused on going first (notably the package
system).
+1, since the "damage" would be that people will need to convert uses
`match', but that'll be minor compared to `cond'.
+1, same reasons.
When I don't use match for a while, the first time I use it, I almost
always write [else ...] as the last clause. Then I catch myself and
replace `else' with `_'.
I started being careful about catch-all cases in `match' when I wrote an
expression similar to this:
(match a
[(list x) #t]
[else (case (first a)
[(6) #f]
[else #t])])
got this error:
case: bad syntax (not a datum sequence) in: else
and was completely baffled for a long time.
A few minutes ago, J. Ian Johnson wrote:
I've used else as a catch-all binding in match. Yes, it's not the
best practice, but I think since I've done it, other people must
have done it too. This could annoy them.
Do you have an actual use that would *break*? That is, something like
(match x ... [else else])
I'll bet almost every use of just `else' as a pattern in the wild
doesn't have `else' in the body because it's intended to be a catch-all
case. If it does have `else' in the body, it's almost certainly in a
`cond' or a `case', which is either an error or hideous style.
Neil ⊥
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev