[Haskell-cafe] Splitting a string into chunks
Adam Turoff
adam.turoff at gmail.com
Fri Jan 13 16:47:43 EST 2006
On 1/13/06, Sebastian Sylvan <sebastian.sylvan at gmail.com> wrote:
> blocks = map concat . groupBy (const (not . null)) . lines
Thanks. That's a little more involved than I was looking for, but that
certainly looks better than pattern matching on ('\n':'\n':rest). ;-)
For the record, lines removes the trailing newline, so a string like:
a
b
c
d
becomes ["ab", "cd"], which can interfere with processing if the whitespace
is significant. Changing this to
blocks = map unlines . groupBy (const (not . null)) . lines
re-adds all of the newlines, thus re-adding the significant whitespace,
while still chunking everything into blocks: ["a\nb\n","\nc\nd\n"]
Thanks again,
-- Adam
More information about the Haskell-Cafe
mailing list