[Haskell-cafe] Language semantics
Andrew Coppin
andrewcoppin at btinternet.com
Fri Jun 29 14:13:16 EDT 2007
Jon Cast wrote:
> On Wednesday 27 June 2007, Andrew Coppin wrote:
>
>> Wow, wait a sec - case expressions are allowed to have guards too??
>>
>
> Yes. I guess I assumed you knew that, sorry.
>
> The only syntactic (or semantic) difference between function equations and
> case expressions (aside from the fact that case expressions require you to
> tuple up the values you're pattern-matching on) is the fact that case
> expressions use -> where function bindings use =. Other than that, the two
> forms are exactly equivalent.
>
I knew they were nearly identical. I didn't realise that they *were*
identical!
Hmm, I tried to find out 1 thing and actually found out 2 things! :-D
I wonder what the layout for that is... something like this?
case foo of
patter1
| guard1 -> ...
| guard2 -> ...
pattern2
| guard3 -> ...
| guard4 -> ...
Well, I'll have to go try it...
I always thought of guards as being a nice shorthand for if-expressions
- but if they can affect the order of pattern matching, clearly they are
more drastically different than I realised. (Generally, I never ever use
'em!)
More information about the Haskell-Cafe
mailing list