As a beginner, I had found the behaviour quite unpredictable. But with time I found that I could reason out the behaviour with my slowly growing knowledge of laziness. I don&#39;t spot all the places in my program that will suck while writing a program, but post facto many things become clear. (And then there is the profiler!)<br>
<br>GHC&#39;s internal details had been never necessary to me! I aspire to write computationally heavy programs in haskell in future, and I have been successful in reaching factors of 3 to 5 with C programs (though I have not been upto factors of 1 for which I find claims here and there) without any knowledge of GHC internals. But the GHC user guide is immensely valuable.<br>
<br>I would like to note that beginners&#39; codes are many times time/memory consuming even in slighly complicated cases, and it may be a big source of frustration and turn-away if they don&#39;t stick up and pursue. This is not a problem of GHC, or even Haskell; it generally applies to functional programming.<br>
<br>These are my opinions; I am only an advanced beginner :)<br><br><div class="gmail_quote">2008/5/10 Jeff Polakow &lt;<a href="mailto:jeff.polakow@db.com">jeff.polakow@db.com</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<br><font face="sans-serif" size="2">Hello,</font>
<br>
<br><tt><font size="2">One frequent criticism of Haskell (and by extension
GHC) is that it has unpredictable performance and memory consumption. I
personally do not find this to be the case. I suspect that most programmer
confusion is rooted in shaky knowledge of lazy evaluation; and I have been
able to fix, with relative ease, the various performance problems I&#39;ve
run into. However I am not doing any sort of performance critical computing
(I care about minutes or seconds, but not about milliseconds). </font></tt>
<br>
</blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><tt><font size="2">I would like to know what others think about this.
Is GHC predictable? Is a thorough knowledge of lazy evaluation good enough
to write efficient (whatever that means to you) code? Or is intimate knowledge
of GHC&#39;s innards necessary?</font></tt>
<br>
<br><tt><font size="2">thanks,</font></tt>
<br><tt><font size="2">&nbsp; Jeff</font></tt>
<br>
<br><tt><font size="2">PS I am conflating Haskell and GHC because I use GHC
(with its extensions) and it produces (to my knowledge) the fastest code.</font></tt>
<br>
<br>
<span style="font-size: 8pt; color: rgb(0, 0, 0);">---<br>
<br>
This e-mail may contain confidential and/or privileged information. If you <br>
are not the intended recipient (or have received this e-mail in error) <br>
please notify the sender immediately and destroy this e-mail. Any <br>
unauthorized copying, disclosure or distribution of the material in this <br>
e-mail is strictly forbidden.</span><br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br>