
Andreas Abel
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@cl.cam.ac.uk