utility-ht-0.0.13: Various small helper functions for Lists, Maybes, Tuples, Functions

Safe HaskellSafe
LanguageHaskell98

Data.List.Match

Synopsis

Documentation

take :: [b] -> [a] -> [a] Source #

Make a list as long as another one

drop :: [b] -> [a] -> [a] Source #

Drop as many elements as the first list is long

splitAt :: [b] -> [a] -> ([a], [a]) Source #

takeRev :: [b] -> [a] -> [a] Source #

dropRev :: [b] -> [a] -> [a] Source #

replicate :: [a] -> b -> [b] Source #

Specialisation of $>.

equalLength :: [a] -> [b] -> Bool Source #

Check whether two lists with different element types have equal length. It is equivalent to length xs == length ys but more efficient.

compareLength :: [a] -> [b] -> Ordering Source #

Compare the length of two lists over different types. It is equivalent to (compare (length xs) (length ys)) but more efficient.

lessOrEqualLength :: [a] -> [b] -> Bool Source #

lessOrEqualLength x y is almost the same as compareLength x y <= EQ, but lessOrEqualLength [] undefined = True, whereas compareLength [] undefined <= EQ = undefined.

shorterList :: [a] -> [a] -> [a] Source #

Returns the shorter one of two lists. It works also for infinite lists as much as possible. E.g. shorterList (shorterList (repeat 1) (repeat 2)) [1,2,3] can be computed. The trick is, that the skeleton of the resulting list is constructed using zipWith without touching the elements. The contents is then computed (only) if requested.