shithub: MicroHs

Download patch

ref: 27047b2309e0709a07c3053eeba094f24de0af33
parent: f8bb21a994514613dcfd83c2e9031ec29d450851
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Wed Aug 23 15:19:09 EDT 2023

More standard functions

--- a/lib/Data/List.hs
+++ b/lib/Data/List.hs
@@ -172,6 +172,13 @@
   else
     x : xs
 
+span :: forall a . (a -> Bool) -> [a] -> ([a], [a])
+span p =
+  let
+    rec r [] = (reverse r, [])
+    rec r (x:xs) = if p x then rec (x:r) xs else (reverse r, x:xs)
+  in rec []
+
 head :: forall a . [a] -> a
 head [] = error "head"
 head (x:_) = x
--