shithub: MicroHs

Download patch

ref: fe42bfc4b33214f1c0ae47f71f671a2c73287212
parent: d8e05cf2505814a2eb1a93d451e05de2226a576b
author: Lennart Augustsson <augustss@Lennarts-Mini.augustsson.net>
date: Sat Nov 16 07:26:39 EST 2024

Add spanEnd and breakEnd

--- a/lib/Data/List.hs
+++ b/lib/Data/List.hs
@@ -11,6 +11,7 @@
   iterate, iterate', repeat, replicate, cycle,
   unfoldr,
   take, drop, splitAt, takeWhile, takeWhileEnd, dropWhile, dropWhileEnd, span, spanUntil, break, splitWith,
+  spanEnd, breakEnd,
   stripPrefix, stripSuffix, group, inits, tails,
   isPrefixOf, isSuffixOf, isInfixOf, isSubsequenceOf,
   elem, notElem, lookup,
@@ -378,6 +379,12 @@
 
 break :: forall a . (a -> Bool) -> [a] -> ([a],[a])
 break p = span (not . p)
+
+spanEnd :: (a -> Bool) -> [a] -> ([a], [a])
+spanEnd p xs = (dropWhileEnd p xs, takeWhileEnd p xs)
+
+breakEnd :: (a -> Bool) -> [a] -> ([a], [a])
+breakEnd p = spanEnd (not . p)
 
 spanUntil :: forall a . (a -> Bool) -> [a] -> ([a], [a])
 spanUntil p =