我有一个列表列表,例如, [[1,1,3],[1,2,4],[4,4,4],[5,6,7]]
基于过滤器输出的过滤器
我想删除所有具有重复元素的列表,例如返回[[1,2,4],[5,6,7]]
我目前的问题是为我的应用程序filter
创建一个谓词。 我目前正在尝试根据该列表的预期长度测试已过滤列表的长度。但是,我努力让它在list
的元素上起作用。
removeLoops :: [[Integer]] -> Integer -> [[Integer]]
removeLoops list vs = filter (genericLength(filter (==)) < vs) list
我吠叫错了树吗?或者只是对谓词的误解?
我真的不明白你在这里做什么。您有重复的条件是删除重复项后列表的长度是否减少?请注意'filter(==)'不会删除重复项。有一个函数'nub'。虽然检查一个列表是否有重复,但更容易删除它们。你不应该用后者来做前者,以提高效率。 –
子列表是否总是排序?如果是这样,您可以使用'hasDups xs =或$ zipWith(==)xs(tail xs)'检查重复项。 – hammar