[Haskell-beginners] Re: Pure Regex.PCRE Possible? (PLEAC, Fix Style)

Daniel Fischer daniel.is.fischer at web.de
Sun Dec 20 09:52:06 EST 2009


Am Sonntag 20 Dezember 2009 15:34:11 schrieb Volkan YAZICI:
>
> OTH, I'm looking at my "translate" and it fails on infinite strings. Is
> it because of something lacking in my implementation, or a limitation of
> Regex.PCRE?
>
>
> Regards.

I don't know whether the regex library can deal well with infinite input, but in

translate input = do
  (head, word, tail) <- matchRegex input
  tailTrans <- (translate tail)
  return $ head ++ (transWord word) ++ tailTrans

the IO-semantics require that the whole input is processed before anything is returned 
(translating tail might throw an exception, after all). Maybe it'll work with a little 
unsafeInterleaveIO magic:

import System.IO.Unsafe

translate input = do
  (head, word, tail) <- matchRegex input
  tailTrans <- unsafeInterleaveIO (translate tail)
  return $ head ++ (transWord word) ++ tailTrans


More information about the Beginners mailing list