"I have not written this complaint until now because I have been waiting for unmistakable evidence, a smoking gun, a red hand so caught that you cannot explain away,"
It's not a murder trial! The number-one nice thing about the Haskell community is that they _thoroughly_ listen to people. I think you'd get a similarly informative discussion, sending just the second half of this email.
On Sat, Dec 24, 2011 at 1:49 PM, Dan Doel
<dan.doel@gmail.com> wrote:
[...]
I think it's good to be clear on all these specifics, and people could
do with a better recognition of the difference between (non-)strict
and (lazy)eager (hint: you can have an eager, non-strict language). [...]
+1.
I'm pretty sure _none_ of the Haskell texts have a definitive comparison of strict, non-strict, lazy, and eager.
The Haskell Wiki has this (and only this) to say about Eager Evaluation:
"Eager evaluation is an implementation of the strict semantics as can be found in OCaml and usually in imperative languages. A kind of opposite is lazy evaluation." [0]
We can do better.
On the other hand:
I'd _strongly_ argue against "making up our minds" about definitions within the Haskell community. Most of these concepts aren't Haskell-specific.
An example of something to avoid is our definitions of "concurrency" and "parallellism." We as a community have specific, good definitions of each term. [1] So does the Erlang community. [2] Yet the definitions don't have anything to do with each other, which makes talking across communities more difficult.
amindfv / Tom