Возвращает список значений Integer, которые не находятся в диапазоне чисел в существующем списке: - PullRequest
0 голосов
/ 28 мая 2011

У меня есть список значений:

[0,7,4,5,3,1,4,5,5,1,7,0,7,7,0]

и я хочу вернуть любые значения, которые не находятся в диапазоне [1..8]

(т.е. я хотел бы вернуть (из вышеприведенного примера) элементы 2, 6 и 8 в форме

[2,6,8]

)

Кажется, у меня проблемы с объединением этого в функцию.Я знаю, что notElem будет хорошо работать здесь, но я не уверен, как применить список [1..8] к списку значений, показанному выше, чтобы получить элементы, показанные именно тогда.

1 Ответ

4 голосов
/ 28 мая 2011

Используйте filter, чтобы сохранить элементы, удовлетворяющие условию.

Prelude> filter (`notElem` theBigListOfValues) [1..8]
[2,6,8]

Или просто возьмите дополнение , используя оператор (\\).

Prelude> import Data.List
Prelude Data.List> [1..8] \\ theBigListOfValues
[2,6,8]
...