[Haskell-cafe] How to split this string.
emacsray at gmail.com
emacsray at gmail.com
Mon Jan 2 11:45:47 CET 2012
On Mon, Jan 02, 2012 at 12:44:23PM +0300, max wrote:
> I want to write a function whose behavior is as follows:
>
> foo "string1\nstring2\r\nstring3\nstring4" = ["string1",
> "string2\r\nstring3", "string4"]
>
> Note the sequence "\r\n", which is ignored. How can I do this?
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
unixLines :: String -> [String]
unixLines xs = reverse . map reverse $ go xs "" []
where
go [] l ls = l:ls
go ('\r':'\n':xs) l ls = go xs ('\n':'\r':l) ls
go ('\n':xs) l ls = go xs "" (l:ls)
go (x:xs) l ls = go xs (x:l) ls
More information about the Haskell-Cafe
mailing list