[Haskell-cafe] strict, lazy, non-strict, eager

2011-12-23 Thread Albert Y. C. Lai
Most individuals of the Haskell community have long been maintaining a cognitive dissonance; some cases turn into plain hypocrisy. You might excuse it for its ancient and prominent origin: Richard Bird and/or Philip Wadler themselves wrote like "it is too lazy", "make it more strict" 13 years a

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-23 Thread Yves Parès
See that's typically the speech that scares people away from Haskell... -- The ⊥ is a lie. 2011/12/24 Albert Y. C. Lai > Most individuals of the Haskell community have long been maintaining a > cognitive dissonance; some cases turn into plain hypocrisy. You might > excuse it for its ancient an

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Tony Morris
On 24/12/11 17:54, Yves Parès wrote: > See that's typically the speech that scares people away from Haskell... > > > > ___ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe Wait what? I find it

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread MigMit
On 24 Dec 2011, at 11:31, Albert Y. C. Lai wrote: > So, on IRC in #haskell, from the same person, speaking on the same topic in > the same context, in the same interval of 3 minutes (the first two sentences > in the same minute): > > 1. a function f is strict if f ⊥ = ⊥ > 2. ⊥ represents any c

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Gregory Crosswhite
On Dec 24, 2011, at 6:22 PM, Tony Morris wrote: > Wait what? > > I find it intriguing, helpful, provocative and potentially helpful toward the > common goal of helping others. I am interested in further commentary. I'm not > scared and you shouldn't be either. Asking honest questions is immin

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Tony Morris
On 24/12/11 18:41, Gregory Crosswhite wrote: > On Dec 24, 2011, at 6:22 PM, Tony Morris wrote: > >> Wait what? >> >> I find it intriguing, helpful, provocative and potentially helpful toward >> the common goal of helping others. I am interested in further commentary. >> I'm not scared and you sho

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Murray Campbell
On Sat, Dec 24, 2011 at 08:54:43AM +0100, Yves Parès wrote: >See that's typically the speech that scares people away from Haskell... >-- >The ⥠is a lie. > >2011/12/24 Albert Y. C. Lai <[1]tre...@vex.net> > >> [ snip. ] I find this sort of discussion is precisely what draws me t

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Eugene Kirpichov
I applaud the pedantry, but I must admit that the tone of the original email is unusually harsh for the Haskell community, even though not so harsh as to really make me (for example) scared. On Sat, Dec 24, 2011 at 12:47 PM, Murray Campbell wrote: > On Sat, Dec 24, 2011 at 08:54:43AM +0100, Yves

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Gregory Crosswhite
On Dec 24, 2011, at 6:47 PM, Murray Campbell wrote: > It's too late to avoid success at all costs but please don't banish our > precious pedantry! > > Scare on! Please don't misunderstand, I have absolutely no problems at all with people arguing voraciously and pedantically over ideas, as long

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Edward Z. Yang
> 1. a function f is strict if f ⊥ = ⊥ > 2. ⊥ represents any computation which does not terminate, i.e. an > exception or an infinite loop > 3. "strict" describes the denotational semantics > > People, could you please make up your mind already? It has been more > than 13 years. I have to admi

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Lyndon Maydwell
I wonder how the arrival of an anonymous anecdote on IRC was the smoking gun needed to justify calling out the Haskell community on its cognitive dissonance. Surely you would need some statistical evidence, a public display from a very prominent member, or some officially endorsed stance to convinc

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Yves Parès
I'm gonna clarify my point a little ^^. In fact pedantry was involved. The way Albert started his original post was pedantic. The scaring effect was mostly caused by such discourse showing two things: - Haskellers make use of obscure terms and distinctions (e.g. "denotational semantics") - ...whos

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Dan Doel
On Sat, Dec 24, 2011 at 2:31 AM, Albert Y. C. Lai wrote: > 1. a function f is strict if  f ⊥ = ⊥ > 2. ⊥ represents any computation which does not terminate, i.e. an exception > or an infinite loop > 3. "strict" describes the denotational semantics All three of these statements are true. The only

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Tom Murphy
"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 th

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Eugene Kirpichov
On Sat, Dec 24, 2011 at 10:49 PM, Dan Doel wrote: > On Sat, Dec 24, 2011 at 2:31 AM, Albert Y. C. Lai wrote: > > 1. a function f is strict if f ⊥ = ⊥ > > 2. ⊥ represents any computation which does not terminate, i.e. an > exception > > or an infinite loop > > 3. "strict" describes the denotatio

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Dan Doel
On Sun, Dec 25, 2011 at 12:14 AM, Eugene Kirpichov wrote: > On Sat, Dec 24, 2011 at 10:49 PM, Dan Doel 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

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-24 Thread Eugene Kirpichov
Thanks, this makes sense. On Sun, Dec 25, 2011 at 10:03 AM, Dan Doel wrote: > On Sun, Dec 25, 2011 at 12:14 AM, Eugene Kirpichov > wrote: > > On Sat, Dec 24, 2011 at 10:49 PM, Dan Doel wrote: > >> I think it's good to be clear on all these specifics, and people could > >> do with a better reco

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-25 Thread Yves Parès
2011/12/25 Tom Murphy > 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 "parallel

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Albert Y. C. Lai
There are two flavours of MonadState, Control.Monad.State.Lazy and Control.Monad.State.Strict. There are two flavours of ByteString, Data.ByteString.Lazy and Data.Bytestring (whose doc says "strict"). There are two flavours of I/O libraries, lazy and strict. There are advices of the form: "the

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Yves Parès
When I explain to people what strict/lazy/eager mean, I often say something like : - Adjectives eager and lazy apply *only* to a global evaluation method: * eager* is C evaluation style and *lazy* is that of Haskell. - Adjective strict can be applied *both* to a global evaluation method and a spec

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Yves Parès
> - Adjective strict can be applied *both* to a global evaluation method and a specific function: if applied to an eval method then it's a synonym of "strict" I of course meant a synonym of *"eager"*. Sorry. I admit this definition might be a little liberal, but it helps understand. 2011/12/28

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Thiago Negri
I got a glimpse of understanding of what you are talking about after reading the wiki [1]. Still difficult to reason about the difference between lazy and non-strict without taking a look at the text. I hope somebody will make an effort to better explain the differences and persist it in the wiki

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Thiago Negri
I did read other wiki pages, and I guess I finally got it. Anyone who still feel lost, take a look at them [1,2,3,4]. If the HaskellWiki is right, then the Wikipedia article for evaluation strategies [5] is a bit misleading, as it classifies optimistic evaluation under "nondeterministic strategies

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Jon Fairbairn
Thiago Negri writes: > Lazy evaluation is one implementation of non-strict semantics, where > the arguments are evaluated only when they are needed. I would say this: * non-strict semantics require that no argument is evaluated unless needed. * lazy evaluation is an implementation of non-str

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Thiago Negri
2011/12/28 Jon Fairbairn : > * non-strict semantics require that no argument is evaluated >  unless needed. That's not the case on optimistic evaluation. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/hask

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2011-12-28 Thread Jon Fairbairn
Thiago Negri writes: > 2011/12/28 Jon Fairbairn : >> * non-strict semantics require that no argument is evaluated >>  unless needed. > > That's not the case on optimistic evaluation. Oops, yes. I should have said something like “non-strict semantics require that evaluation should terminate if t

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2012-01-09 Thread wren ng thornton
On 12/28/11 6:47 AM, Thiago Negri wrote: I got a glimpse of understanding of what you are talking about after reading the wiki [1]. Still difficult to reason about the difference between lazy and non-strict without taking a look at the text. One way to keep them distinct is to recall that "laz

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2012-01-09 Thread wren ng thornton
On 12/28/11 10:23 AM, Jon Fairbairn wrote: Thiago Negri writes: Lazy evaluation is one implementation of non-strict semantics, where the arguments are evaluated only when they are needed. I would say this: * non-strict semantics require that no argument is evaluated unless needed. I'm

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2012-01-09 Thread Jon Fairbairn
wren ng thornton writes: > On 12/28/11 10:23 AM, Jon Fairbairn wrote: >> Thiago Negri writes: >> >>> Lazy evaluation is one implementation of non-strict semantics, where >>> the arguments are evaluated only when they are needed. >> >> I would say this: >> >> * non-strict semantics require that n

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2012-01-16 Thread David Barbour
Full beta-reduction is certainly not strict but also doesn't guarantee terminate even where it is possible (i.e. it might indefinitely unfold a value without making progress). I don't think there is much you can say about non-strictness and termination. Regards, Dave On Mon, Jan 9, 2012 at 3:01

Re: [Haskell-cafe] strict, lazy, non-strict, eager

2012-01-18 Thread Jon Fairbairn
(I’m somewhat dismayed that the error in my preliminary remark has overshadowed the point of my original message — which was about the distinction between lazy and non-strict. However…) David Barbour writes: > Full beta-reduction is certainly not strict What, precisely, do you mean by “full beta