Haskell 筛选出列表列表中的元素
我想过滤掉列表列表中的数字2: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版本,后者确实更具可读性。 使用也应该有效(导入
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 donoTwos xs=map length[x | xbasicfilter(/=2)[[1,2,3],[1,2],[2,1,3,4]
应该足够了。
no2s = filter (not . null) . map (\\ [2])