I've written it to run over lists, but it would not be difficult to
make it run over ByteStrings instead, and exploit the 'no-copying'
effect on the bits of the stream which were not modified, which would
be very handy for programs processing large bytestrings.

I wonder if there's a efficient way of writting generic code that runs
over String or over ByteString? Or at least with Lazy and Strict
ByteStrings?



I mean, I can write something like

double :: Num a => a -> a
double x = x * 2

and, e.g. if I want speed on Doubles (and am using GHC)

{-# SPECIALIZE double :: Double -> Double #-}

but AFAIK there isn't a way of doing so with all the string types?


And, if we're really lacking these mechanisms, is it because of a lack
of formulation or because it isn't possible to generalise String
operations?


Thanks! =)

--
Felipe.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to