[Haskell-cafe] lambda case
Jon Fairbairn
jon.fairbairn at cl.cam.ac.uk
Fri Nov 30 11:24:48 CET 2012
Andreas Abel <andreas.abel at ifi.lmu.de> writes:
> I had been missing a pattern matching lambda in Haskell for
> a long time (SML had "fn" since ages) and my typical use
> will be
>
> monadic_expr >>= \case
> branches
We’ve been through that. I want something similar, but would
have preferred something more algebraic.
> I think "\case" is not the worst choice, certainly better than
> "of" ...
What’s your argument? You’ll have to do better than blatant
assertion to convince me. Making “case exp” optional builds on
an existing expression syntax, giving an explicit meaning to a
part of it, so a reader only has to know that “of {alts}” is a
function and case does something specific with it. This “\case”
takes the keyword from that expression syntax and makes it a
special case of lambda, so a reader seeing a lambda now has to
check for a keyword instead of knowing straight off that the
next thing is going to be a variable.
Back when we originally designed Haskell there were lots of
things that people wanted to put in, and eventually we reached a
point where we said that we would only put something new in if
it allowed us to remove (or simplify) something else. “\case”
complicates lambda, using “of” simply breaks “case … of …” into
two easily understood parts.
--
Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk
More information about the Haskell-Cafe
mailing list