Commit 4067b0bc authored by Steffen Michels's avatar Steffen Michels

add Data.OrdList

parent 16c32f16
Pipeline #8926 passed with stage
in 1 minute and 30 seconds
definition module Data.OrdList
/** This module extends StdOrdList with extra functions.
*/
import StdOrdList
/** removeMembersSortedList @xs @ys = @zs:
removes all occurrences of elements in @ys from @xs, resulting in @zs.
The function assumes that both @xs and @ys are sorted and contain no duplicate elements.
*/
removeMembersSortedList :: ![a] ![a] -> [a] | Eq, Ord a
/** removeDupSortedList @xs = @zs:
removes all duplicate elements from @xs, resulting in @zs.
The function assumes that @xs is sorted.
*/
removeDupSortedList :: ![a] -> [a] | Eq a
implementation module Data.OrdList
import StdList, StdOrdList
removeMembersSortedList :: ![a] ![a] -> [a] | Eq, Ord a
removeMembersSortedList [] ys
= []
removeMembersSortedList xs []
= xs
removeMembersSortedList [x:xs] [y:ys]
| x < y = [x : removeMembersSortedList xs [y:ys]]
| x == y = removeMembersSortedList xs ys
| otherwise = removeMembersSortedList [x:xs] ys
removeDupSortedList :: ![a] -> [a] | Eq a
removeDupSortedList []
= []
removeDupSortedList [x:xs]
= [x : removeDupSortedList (dropWhile ((==) x) xs)]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment