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 dmbarb...@gmail.com writes: Full beta-reduction is certainly not strict What, precisely, do you

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-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

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 Negrievoh...@gmail.com 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

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

2012-01-09 Thread Jon Fairbairn
wren ng thornton w...@freegeek.org writes: On 12/28/11 10:23 AM, Jon Fairbairn wrote: Thiago Negrievoh...@gmail.com 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

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

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 Yves

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

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 evoh...@gmail.com 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

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

2011-12-28 Thread Thiago Negri
2011/12/28 Jon Fairbairn jon.fairba...@cl.cam.ac.uk: * 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

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

2011-12-28 Thread Jon Fairbairn
Thiago Negri evoh...@gmail.com writes: 2011/12/28 Jon Fairbairn jon.fairba...@cl.cam.ac.uk: * 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

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

2011-12-25 Thread Yves Parès
2011/12/25 Tom Murphy amin...@gmail.com 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

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

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

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 shouldn't be

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 to, and

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 mur...@sonology.netwrote: On Sat, Dec 24, 2011 at

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 as

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 admit, I'm a

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

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) - ...whose

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 tre...@vex.net 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.

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

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 dan.d...@gmail.com wrote: On Sat, Dec 24, 2011 at 2:31 AM, Albert Y. C. Lai tre...@vex.net 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

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 ekirpic...@gmail.com wrote: On Sat, Dec 24, 2011 at 10:49 PM, Dan Doel dan.d...@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

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 dan.d...@gmail.com wrote: On Sun, Dec 25, 2011 at 12:14 AM, Eugene Kirpichov ekirpic...@gmail.com wrote: On Sat, Dec 24, 2011 at 10:49 PM, Dan Doel dan.d...@gmail.com wrote: I think it's good to be clear on all these

[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 ago

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 tre...@vex.net Most individuals of the Haskell community have long been maintaining a cognitive dissonance; some cases turn into plain hypocrisy. You might excuse it for