У меня есть этот код, но он не делает то, что я хочу полностью, я беру список кортежей;Устранение дубликатов полностью в Haskell
[(3,2),(1,2),(1,3),(1,2),(4,3),(3,2),(1,2)]
и дает
[(1,3),(4,3),(3,2),(1,2)]
, но я хочу, чтобы дать
[(1,3),(4,3)]
, где я делаю неправильно? Заранее спасибо.
eliminate :: [(Int,Int)] -> [(Int,Int)]
eliminate [] = []
eliminate (x:xs)
| isTheSame xs x = eliminate xs
| otherwise = x : eliminate xs
isTheSame :: [(Int,Int)] -> (Int,Int) -> Bool
isTheSame [] _ = False
isTheSame (x:xs) a
| (fst x) == (fst a) && (snd x) == (snd a) = True
| otherwise = isTheSame xs a
Что вы подразумеваете под «полностью», почему именно следует исключать '(3,2)' и '(1,2)'? – Landei
Я ищу функцию, которая полностью исключает дубликаты, только там должны быть уникальные, я должен изменить свою реализацию:/ – Karavana