Haskell 筛选出列表列表中的元素

Haskell 筛选出列表列表中的元素,haskell,Haskell,我想过滤掉列表列表中的数字2: myList = [[1,2,3],[1,2],[2,1,3,4]] …因此,当我使用此长度函数时: noTwos xs = map length [x|x<-xs] noTwos xs=map length[x | x这似乎工作正常: map (filter (/= 2)) [[1,2,3],[1,2],[2,1,3,4]] 您可以映射外部列表,并过滤每个子列表。或者使用Ulrar的map.filter版本,后者确实更具可读性。 使用也应该有效(导入

我想过滤掉列表列表中的数字2:

myList = [[1,2,3],[1,2],[2,1,3,4]]
…因此,当我使用此长度函数时:

noTwos xs = map length [x|x<-xs]

noTwos xs=map length[x | x这似乎工作正常:

map (filter (/= 2)) [[1,2,3],[1,2],[2,1,3,4]]

您可以映射外部列表,并过滤每个子列表。

或者使用Ulrar的
map.filter
版本,后者确实更具可读性。 使用也应该有效(导入
数据。需要列表):

请注意,如果出现
[…,[2],…]

如果您想清除空列表,只需将其过滤掉:

no2s = filter (not . null) . map (\\ [2])

你试过嵌套那些列表理解吗?外部的应该像
noTwos
中的那样。不要收集
x
s,而是做第二个列表理解来过滤掉
2
s.hm.。我不知道应该把第二个列表理解放在哪里,像
[[x | xHow do
noTwos xs=map length[x | xbasic
filter(/=2)[[1,2,3],[1,2],[2,1,3,4]
应该足够了。
no2s = filter (not . null) . map (\\ [2])