[Haskell-cafe] Haskell symbol ~

C.M.Brown cmb21 at kent.ac.uk
Wed Aug 27 15:14:23 EDT 2008


Hi,

I may be wrong here, but I don't belive it's just let-patterns that have
this property. I.e. what's the difference between...

(Just x) = _|_

f = x

vs.

f = let (Just x) = _|_ in x

vs.

f = x where (Just x) = _|_

I believe Haskell uses Normal Order Reduction in all these cases. Why is
it just let-patterns? Can you give an example?

Thanks,
Chris.




On Wed, 27 Aug 2008, Brandon S. Allbery KF8NH wrote:

> On 2008 Aug 27, at 14:23, Maurí cio wrote:
> > What does '~' mean in Haskell? I
> > read in haskell.org/haskellwiki/Keywords
> > that “(...) Matching the pattern ~pat
> > against a value always suceeds, and
> > matching will only diverge when one of
> > the variables bound in the pattern is
> > used.” Isn't that true for any
> > variable, due to lazyness?
>
> Only in let-patterns; others, including case expressions and top level
> definitions, are strict (which is in fact the normal way to force a
> value).
>
>


More information about the Haskell-Cafe mailing list