+++ /dev/null
-module ListUtils
-( pad_left_to,
- pad_right_to,
- splitWith
-) where
-
-
--- Stolen from ByteString. Splits a list at each element satisfying
--- the predicate p.
-splitWith :: (a -> Bool) -> [a] -> [[a]]
-splitWith p xs =
- ys : case zs of
- [] -> []
- _:ws -> splitWith p ws
- where (ys,zs) = break p xs
-
-
--- Pads a list (on the left) to length len by prepending pad_elem.
-pad_left_to :: Int -> a -> [a] -> [a]
-pad_left_to len pad_elem xs =
- if (length xs) >= len then
- xs
- else
- (replicate padcount pad_elem) ++ xs
- where
- padcount = len - (length xs)
-
-
--- Pads a list (on the right) to length len by appending pad_elem.
-pad_right_to :: Int -> a -> [a] -> [a]
-pad_right_to len pad_elem xs =
- if (length xs) >= len then
- xs
- else
- xs ++ (replicate padcount pad_elem)
- where
- padcount = len - (length xs)