On Mon, Nov 3, 2008 at 5:39 PM, Henning Thielemann <lemming@henning-thielemann.de> wrote:
On Mon, 3 Nov 2008, Luke Palmer wrote:
On Mon, Nov 3, 2008 at 2:54 PM, Don Stewart <dons@galois.com> wrote:
"Optimisations" enable strictness analysis.
I was actually being an annoying purist. "f is strict" means "f _|_ = _|_", so strictness is a semantic idea, not an operational one. Optimizations can change operation, but must preserve semantics.
But I'm not just picking a fight. I'm trying to promote equational reasoning over operational reasoning in the community, since I believe that is Haskell's primary strength.
Maybe I missed the point, but the optimization seems correct to me. Without optimization and its (strictness) analysis the program would still output the correct answer - given that the stack is sufficiently large. Optimization simply makes this program run using much less space. Right?
I think Luke was commenting on the terminology, not the optimization. We have a tendency to say "lazy" when we mean "non-strict" and "strict" when we mean "eager". -- Dave Menendez <dave@zednenem.com> <http://www.eyrie.org/~zednenem/>