John Hughes wrote:
Quick, when I write do (x,y)<-e... is that pair matched strictly, like case, or lazily, like let? If strictly, then why? There's no choice to be made here, so why not wait until x or y is used before matching?
The choice of whether to invoke fail can't be postponed. Admittedly fail will never be called in this case, but I think legislating special behavior for such cases would be a bad idea. What would (x,[]) <- e mean?
If only pattern matching was *always* strict, unless a ~ appeared, then the language would be more regular and easier to learn.
But then (let 1=2 in "Whee!") wouldn't work properly any more. :-) -- Ben _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://haskell.org/mailman/listinfo/haskell-prime