[Haskell-beginners] list splitting - nice implementation?
tob.brandt at googlemail.com
Sun Nov 18 11:53:23 CET 2012
On 18 November 2012 11:33, Kim-Ee Yeoh <ky3 at atamo.com> wrote:
> On Sun, Nov 18, 2012 at 4:47 PM, Tobias Brandt <tob.brandt at googlemail.com>
> split xs = getSnds $ span (uncurry (<)) $ zip xs (tail xs)
>> where getSnds (as, bs) = (map snd as, map snd bs)
> You could prepend negative infinity to not lose the first element.
Oops, didn't noticed that, nice catch. I'd rather do the following, as it
works for all types that can be compared with (<), not just for numbers:
split xs = getSnds $ span (uncurry (<)) $ zip xs (tail xs)
where getSnds (as, bs) = (head xs : map snd as, map snd bs)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners