【问题标题】:Remove item from list of list in Haskell从 Haskell 列表中删除项目
【发布时间】:2019-09-30 23:25:24
【问题描述】:

我对haskell 函数有疑问。我想从 list o list [[Int]] 中删除特定元素

有很多简单的方法可以删除列表 [Int] 中的元素

例如

removeItem :: Int -> [Int] -> [Int]
removeItem _ []                 = []
removeItem x (y:ys) | x == y    = removeItem x ys
                    | otherwise = y : removeItem x ys

但我不会写

removeItem :: Int -> [[Int]] -> [[Int]]

它应该给出一个结果:

删除项目 1 [[1],[2,2],[3],[1]]

  [[],[2,2],[3],[]]

谁能帮帮我

【问题讨论】:

  • 您能否展示您解决此问题的尝试以及错误或您遇到的问题?

标签: list haskell int


【解决方案1】:

所以你不能让removeItem 既是Int -> [Int] -> [Int] 又是Int -> [[Int]] -> [[Int]]。相反,我将调用后者removeItem'。您已经知道如何从常规列表中删除项目,因此只需使用 map 在这些列表的列表中执行此操作。那么实现就很简单了:

removeItem' :: Int -> [[Int]] -> [[Int]]
removeItem' x = map (removeItem x)

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 2016-05-08
    • 2011-03-18
    相关资源
    最近更新 更多