[Haskell-cafe] Data.ByteString.dropWhile

Thomas Conway drtomc at gmail.com
Tue Jul 10 01:10:50 EDT 2007

Well, maybe I shoud be asking a higher level question then.

I have a function

tidy = reverse . dropWhile punk . reverse . dropWhile punk
    punk = isPunctuation . chr . fromIntegral

which is leading to a significant amount of allocation, and you can see why.

The way I'd like to write it is

tidy = dropWhile punk . dropWhileEnd punk
    where ....

which has the obvious advantage of avoiding quite a bit of
intermediate allocation.

Is there a another way?

I note that since I'm using a nice declarative language, the compiler
CLEARLY should be transforming the first form into the second. :-)

Dr Thomas Conway
drtomc at gmail.com

Silence is the perfectest herald of joy:
I were but little happy, if I could say how much.

More information about the Haskell-Cafe mailing list