Я пытаюсь сделать функцию, которая, учитывая два списка, удаляет из обоих списков элементы, которые они имеют в commen. Я ломаю голову над этим, но я не смог придумать достойное решение.Удалить элементы из двух списков
Например, если:
` let a = [1,2,3,4,5] `
` let b = [1,3,5,7,9] `
` f a b `
Тогда е должен возвращать что-то вроде:
` ([2,4], [7,9]) `
Вы пытались сломать проблему на мелкие кусочки? Где именно у вас проблемы? Я предполагаю, что это домашнее задание, но в реальной жизни, если вы столкнулись с этой проблемой, сначала рассмотрите, подходит ли 'Set' или какая-либо другая структура данных. – jberryman
Это фактически уже разбито на то, что я действительно хочу. Я нахожу это трудным, как вам нужно перебирать один список по другому, а затем возвращать список [Integer]. Я часто получаю список [[Целочисленный]], в котором я удалял только один элемент в списке. Не использовались никакие другие структуры данных в Haskell, кроме списков и тележек, я буду лучше смотреть и видеть любую работу, спасибо за подсказку. – Henk
Вот пример того, что я имею в виду, чтобы разбить проблему на более мелкие части для вашего примера: вы можете определить следующие функции: 'unionLists :: [Int] -> [Int] -> [Int]' (это возвращает элементы в общий между двумя списками), 'delete :: Int -> [Int] -> [Int]' (который возвращает список с элементом, который вы передали при удалении первого параметра). Тогда, если у вас возникли проблемы с определением 'unionLists' за один раз, вы можете сломать это далее в' elem :: Int -> [Int] -> Bool' и 'filter', или, возможно,' merge' и 'sort', если вы «Я чувствую себя умным. – jberryman