[Haskell-cafe] Splitting a string into chunks
Jon Fairbairn
Jon.Fairbairn at cl.cam.ac.uk
Fri Jan 13 16:35:58 EST 2006
On 2006-01-13 at 13:32PST Jared Updike wrote:
> That works except it loses single newline characters.
>
> let s = "1234\n5678\n\nabcdefghijklmnopq\n\n,,.,.,."
> Prelude> blocks s
> ["12345678","abcdefghijklmnopq",",,.,.,."]
Also the argument to groupBy ought to be some sort of
equivalence relation.
blocks = map unlines
. filter (all $ not . null)
. groupBy (\a b -> not (null b|| null a))
. lines
... but that suffers from the somewhat questionable
properties of lines and unlines.
--
Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk
More information about the Haskell-Cafe
mailing list