Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- |Finds symmetric difference between lists. O(2nlogn + 2n)
- difference :: Ord a => [a] -> [a] -> [a]
- difference = iter diffF
- diffF :: Eq a => (Maybe a, Maybe a) -> [a] -> [a]
- diffF (Just x, Just y) acc = if x /= y then x:y:acc else acc
- diffF (Just x, Nothing) acc = x:acc
- diffF (Nothing, Just y) acc = y:acc
- diffF _ acc = acc
Advertisement
Add Comment
Please, Sign In to add comment