From e81468e0f64fdbe05794d5f8ccaebc00ee474ee2 Mon Sep 17 00:00:00 2001 From: Jasper Van der Jeugt Date: Wed, 6 Apr 2016 14:26:46 +0200 Subject: Initial YAML support See #225 --- src/Data/List/Extended.hs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/Data/List/Extended.hs (limited to 'src/Data/List') diff --git a/src/Data/List/Extended.hs b/src/Data/List/Extended.hs new file mode 100644 index 0000000..485cba8 --- /dev/null +++ b/src/Data/List/Extended.hs @@ -0,0 +1,15 @@ +module Data.List.Extended + ( module Data.List + , breakWhen + ) where + +import Data.List + +-- | Like 'break', but can act on the entire tail of the list. +breakWhen :: ([a] -> Bool) -> [a] -> ([a], [a]) +breakWhen predicate = go [] + where + go buf [] = (reverse buf, []) + go buf (x : xs) + | predicate (x : xs) = (reverse buf, x : xs) + | otherwise = go (x : buf) xs -- cgit v1.2.3