我正在尝试从列表列表中删除元素,但前提是该元素位于长度为1的列表中。例如:
removeElement 1 [[2,3],[1,2],[1]]
[[2,3],[1,2]]
removeElement 2 [[1,2,3,4]]
[[1,2,3,4]]
removeElement 3 [[3],[1,4,5]]
[[1,4,5]]
到目前为止,我已经有了这个,但是我不知道如何继续或使用哪个函数。
removeElement :: (Eq a) => a -> [[a]] -> [[a]]
removeElement a [[]] = []
removeElement a ((x:xs):rs) = if a == x then (xs:rs) else [x] :( removeElement a (xs:rs))
答案 0 :(得分:2)
这是filtering的示例:
removeElement :: Eq a => a -> [[a]] -> [[a]]
removeElement e = filter (/= [e])
使用ghci测试示例:
> removeElement 1 [[2,3],[1,2],[1]]
[[2,3],[1,2]]
> removeElement 2 [[1,2,3,4]]
[[1,2,3,4]]
> removeElement 3 [[3],[1,4,5]]
[[1,4,5]]