Data.Foldable.foldr1 too strict
dan.doel at gmail.com
Thu Sep 27 16:32:20 CEST 2012
On Thu, Sep 27, 2012 at 10:09 AM, Brent Yorgey <byorgey at seas.upenn.edu> wrote:
> Isn't that still too strict? I would expect to see "abcdef" before
> the exception.
No, even foldr1 as hand-written on lists needs to look ahead. Normally
it looks like:
foldr1 f [x] = x
foldr1 f (x:xs) = f x (foldr1 xs)
but this is of course sugar for:
foldr1 f (x:) = x
foldr1 f (x:xs) = f x (foldr1 f xs)
Where it's more obvious that it will hit the bottom before it can
yield the "def".
More information about the Libraries