Chaddaï Fouché wrote:
2007/7/11, Andrew Coppin <[EMAIL PROTECTED]>:
Ouch! That's gotta sting...
I wasn't aware that this function was so leathal. I use it constantly
all the time...
It isn't that "lethal" usually. It's only because he was using it on
an infinite stream that it hurt so much... If you use it on a normal
stdin or a hGetContents on a file it will be fine (though you will
lose the advantage of its laziness, for example constant memory
treatment).
Loose lazyness?
Oh wait - you mean the inadvertent length thing?
We already have null, but how about a standard function in Data.List for
testing whether the length is longer than some upper limit?
lengthUpTo :: Int -> [x] -> Int
lengthUpTo n = length . take n
shorterThan :: Int -> Bool
shorterThan n = (n >) . lengthUpTo (n+1)
longerThan :: Int -> Bool
longerThan n = (n <) . lengthUpTo n
lengthEquals :: Int -> Bool
lengthEquals n = (n ==) . lengthUpTo (n+1)
(Perhaps need better names...)
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe