Удалить элемент из списка в Haskell - PullRequest
0 голосов
/ 14 мая 2019

У меня проблема с фракцией Хаскелла. Я хочу удалить определенные элементы из списка o list [[Int]]

Существует множество простых способов удалить элемент из списка [Int]

.

например

removeItem :: Int -> [Int] -> [Int]
removeItem _ []                 = []
removeItem x (y:ys) | x == y    = removeItem x ys
                    | otherwise = y : removeItem x ys

но я не могу написать

removeItem :: Int -> [[Int]] -> [[Int]]

это должно дать результат:

removeItem 1 [[1], [2,2], [3], [1]]

  [[],[2,2],[3],[]]

Кто-нибудь может мне помочь

1 Ответ

6 голосов
/ 14 мая 2019

Таким образом, вы не можете иметь одновременно removeItem Int -> [Int] -> [Int] и Int -> [[Int]] -> [[Int]].Вместо этого я позвоню последнему removeItem'.Вы уже знаете, как удалить элемент из обычного списка, поэтому просто используйте map, чтобы сделать это в списке этих списков.Реализация тогда проста:

removeItem' :: Int -> [[Int]] -> [[Int]]
removeItem' x = map (removeItem x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...