[Haskell-beginners] Seq question
daniel.is.fischer at googlemail.com
Fri Apr 20 00:23:22 CEST 2012
On Thursday 19 April 2012, 23:13:48, Tim Perry wrote:
> Henk-Jan van Tuly is correct. Oops! Sorry I was mis-informed.
Note, however, that in the case here, the data-dependencies force the
evaluation of the first number in order to determine the outermost
So actually, your
> So your use of seq only evaluates the first number and
> the cons. I.E., it evaluates to:
was factually correct (in this special case).
> By the
> way, there is an excellent post about this topic on StackOverflow.com.
> It covers, seq, weak-head-normal-form, normal form, and thunks. See
> Hope that makes up for my earlier comment.
> On Thu, Apr 19, 2012 at 2:31 AM, Henk-Jan van Tuyl
<hjgtuyl at chello.nl>wrote:
> > On Wed, 18 Apr 2012 16:45:05 +0200, Brent Yorgey
> > <byorgey at seas.upenn.edu>
> > wrote:
> > On Tue, Apr 17, 2012 at 02:41:15PM -0700, Tim Perry wrote:
> >>> seq evaluates to Weak Head Normal Form (WHNF). WHNF is the first
> >>> contructor. So your use of seq only evaluates the first number and
> >>> the cons. I.E., it evaluates to:
> >>> s:(Thunk)
> >> Actually, it doesn't even force the first number. You just get
> >> Thunk : Thunk
> > A nice way to demonstrate this, is the following GHCi session:
> > Prelude> undefined `seq` print "OK"
> > *** Exception: Prelude.undefined
> > Prelude> [undefined] `seq` print "OK"
> > "OK"
> > Regards,
> > Henk-Jan van Tuyl
More information about the Beginners