
5 Jan
2012
5 Jan
'12
7:16 a.m.
Am 05.01.2012 13:04, schrieb Steve Horne: [...]
I was going to accuse you of cheating - who says there's a spare value to use? - but you seem to be using Maybe, so well played.
You're also using unfoldr, which I really must play with a bit - I don't really have a feel for how unfolding works ATM.
You may prefer another variant of unfoldr (without Maybe): unfoldr' :: ([b] -> (a, [b])) -> [b] -> [a] unfoldr' f l = if null l then [] else let (a, r) = f l in a : unfoldr' f r split' :: (a -> Bool) -> (a -> Bool) -> [a] -> [[a]] split' e p = unfoldr' $ break' e p C. P.S. my break' function fails for "\r\r\n" (as the first char escapes the second and the second no longer the third)