packages feed

cabal-gild-0.3.0.1: source/library/CabalGild/Extra/List.hs

module CabalGild.Extra.List where

-- | Compares the length of the given list to the given integer. This is
-- equivalent to @compare (length xs) n@, but it can be more efficient if @n@
-- is less than @length xs@.
compareLength :: [a] -> Int -> Ordering
compareLength xs n =
  if n < 0
    then GT
    else case xs of
      [] -> compare 0 n
      _ : ys -> compareLength ys $ n - 1