2011-05-28 17 views
0

我有值的列表:返回整數值的清單,是不是在現有列表中的數字範圍內:

[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]應用到上面顯示的值列表中以獲取剛纔顯示的元素。

回答

4

使用filter來保留滿足條件的元素。

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

或者只是使用(\\)運營商採取complement

Prelude> import Data.List 
Prelude Data.List> [1..8] \\ theBigListOfValues 
[2,6,8] 
相關問題