[Haskell-cafe] Possible Improvements

PR Stanley prstanley at ntlworld.com
Mon Dec 3 03:52:04 EST 2007


That's a very good point. Yes, let's have some detailed explanations 
accompanied by some good examples.
Cheers, Paul
At 08:43 03/12/2007, you wrote:
> > I agree that (in this context, beginning learning Haskell) it is a
> > somewhat minor issue.  But I disagree that this is something you should
> > ignore until it becomes a problem and I do think that it should be part
> > of learning Haskell.  Properly using strictness is an important part of
> > using Haskell.  It makes the difference between code that stack
> > overflows and code that doesn't, code that takes 100 seconds and code
> > that takes 10, code that uses 3MB of RAM and code that uses 600.  At
> > least the first of these is not, in my mind, the difference between
> > "optimized" and "unoptimized", but rather the difference between correct
> > and incorrect.  Writing better code at the beginning is much easier than
> > trying to figure out what the problem is later.  Furthermore, writing
> > better code is not more difficult.  In this case it merely means adding
> > two characters.  Of late, the "rules of thumb" for this sort of thing
> > are becoming more widely known.  Such things need to be "instinctively"
> > part of how you write code, much like writing code tail-recursively or
> > not using (++) left associatively.  It's not that you should immediately
> > know that this is better, but (more strongly) that you should not even
> > think of the worse ways to begin with in many cases.
>
>It would be great if someone could exemplify these "rules of thumb",
>e.g. "Primitive types such as Int should be strict unless in the three
>canonical examples X, Y and Z." My strictness radar is still quite
>poor and I feel I can't make informed decisions on when I need to make
>something more strict or lazy.
>
>-- Johan
>_______________________________________________
>Haskell-Cafe mailing list
>Haskell-Cafe at haskell.org
>http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list