[Haskell-cafe] Is this a useful higher-order function,
or should I RTFM?
Tom Pledger
tpledger at ihug.co.nz
Mon Dec 6 23:05:03 EST 2004
Steven Huwig wrote:
[...]
> 1) Did I miss something in the Prelude or standard library that gives
> me this functionality, or something close to it?
[...]
> 3) The 3-tuple output of unravel looks ugly to me, but I can't think
> of an alternative. For the case where there is an equal number of
> p-groups and not-p-groups, we need to know which side to start the
> zipWith. Does anyone have a better way?
Here's another way to get something similar.
import Data.Char(isSpace)
import Data.List(groupBy)
(op `on` f) x y = f x `op` f y
wordsAndSpaces = groupBy ((==) `on` isSpace)
It has a couple of advantages: laziness, and being reversible by good
ol' concat.
It's a slight nuisance that you have to use isSpace *again* to get your
bearings, if you use wordsAndSpaces in a mapWords function.
Regards,
Tom
More information about the Haskell-Cafe
mailing list