module Database.TxtSushi.Util.ListUtil (
cascadingOrder,
replaceAll) where
import Data.List
replaceAll :: (Eq a) => [a] -> [a] -> [a] -> [a]
replaceAll [] _ _ = []
replaceAll list@(listHead:listTail) targetSublist replacementList =
if targetSublist `isPrefixOf` list then
let remainingList = drop (length targetSublist) list
in replacementList ++ (replaceAll remainingList targetSublist replacementList)
else
listHead:(replaceAll listTail targetSublist replacementList)
cascadingOrder :: [Ordering] -> Ordering
cascadingOrder [] = EQ
cascadingOrder (LT:_) = LT
cascadingOrder (GT:_) = GT
cascadingOrder (EQ:tailOrders) = cascadingOrder tailOrders