On 2003-08-02 at 14:36PDT "Dominic Steinitz" wrote: > Could someone explain to me why this doesn't work > > test l = > hs > where > hs = map (\x -> [x]) [0..abs(l `div` hLen)] > hLen = length $ head hs > > whereas this does > > test l = > hs > where > hs = map (\x -> [x]) (0:[1..abs(l `div` hLen)]) > hLen = length $ head hs > > I would have thought laziness would allow the compiler to > know that hs would contain at least one element and > therefore calculate hLen.
Laziness isn't enough to tell it that. It would also have to know that abs never returns an answer less than zero ([0 .. -1] == []). All the compiler knows is that abs returns an integer. Jón PS I don't know the general policy, but I for one dislike getting emails in HTML unless it's /absolutely/ necessary for the content. Multipart/alternative doesn't help much either. -- Jón Fairbairn [EMAIL PROTECTED] _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell