[Haskell-cafe] needsaname :: ([a] -> Maybe (b, [a])) -> (b -> [a]) -> [a] -> [a]

Felipe Almeida Lessa felipe.lessa at gmail.com
Fri Jul 6 23:16:29 EDT 2007


> 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.


More information about the Haskell-Cafe mailing list