
On 5/10/2010, at 12:49 PM, Donn Cave wrote:
Just to be sure, are you saying, rather than
case of 1 -> f 2 -> g
you'd like to see \ support pattern matching etc. like named functions -
\ 1 -> f 2 -> g
Absolutely. For the record, lambda DOES support pattern matching (Haskell 2010 report, section 3.3 lexp -> \ apat1 ... apatn -> exp Lambda abstractions are written \ p1 ... pn -> e where the pi are _patterns_. ) To repeat, the analogues in SML and Erlang *do* support multiple clauses (as well as pattern matching) and the failure of Haskell lambdas to do so has always seemed like a weird restriction in a language that's usually free of weird restrictions. 'case of' is terminally cute. I dare say its inventor felt extremely proud of hacking it in, but it's the kind of thing that will have admirers swearing in frustration when they get tripped up by it yet again, and detractors sniggering. I'd prefer to see something like \ 1 -> f | 2 -> g but I'm sure something could be worked out.