ref: bfccbb688d13859c453c5977d314b8fbe0d1cba3
parent: a84c5e2ecba3931de5e7f6e034197c998bb5dd57
author: Lennart Augustsson <lennart@augustsson.net>
date: Tue Sep 5 09:10:28 EDT 2023
Add some enumerators.
--- a/lib/Data/List.hs
+++ b/lib/Data/List.hs
@@ -194,8 +194,19 @@
enumFrom :: Int -> [Int]
enumFrom n = n : enumFrom (n+1)
+enumFromThen :: Int -> Int -> [Int]
+enumFromThen n m = n : enumFrom (n+d)
+ where d = m - n
+
enumFromTo :: Int -> Int -> [Int]
enumFromTo l h = takeWhile (<= h) (enumFrom l)
+
+enumFromThenTo :: Int -> Int -> Int -> [Int]
+enumFromThenTo l m h =
+ if m - l > 0 then
+ takeWhile (<= h) (enumFromThen l m)
+ else
+ takeWhile (>= h) (enumFromThen l m)
find :: forall a . (a -> Bool) -> [a] -> Maybe a
find p [] = Nothing
--
⑨