如何从仅匹配 Haskell 中元组的第一个值的元组列表中删除元素

M纳加查兰

如何从仅匹配元组的第一个值的元组列表中删除元素。

delete (2, _ ) [(2, True), (3, False)]
威廉·范·翁塞姆

在这种情况下,签名如下所示:

delete1 :: Eq a => a -> [(a, b)] -> [(a, b)]

我们可以使用递归来查找 2 元组中的匹配项,因此该函数可以如下所示:

delete1 :: Eq a => a -> [(a, b)] -> [(a, b)]
delete1 y = go
    where go [] = …  -- (1)
          go (x:xs)
              | y == x = …  -- (2)
              | otherwise = …  -- (3)

填写s 留作练习。在第一种情况 ( (1)) 中,列表已用尽,因此我们可以返回一个空列表。

对于第二种情况 ( (2)),已找到匹配项,因此在这种情况下,我们在列表的尾部递归。

在最后一种情况下,该项目x匹配y,因此在这种情况下,我们产生该项目并递归。

然而,我们不必自己实现递归,我们可以filter :: (a -> Bool) -> [a] -> [a]使用列表,从而实现如下函数:

delete1 :: Eq a => a -> [(a, b)] -> [(a, b)]
delete1 y = filter func
    where func = …

这里部分需要返回True以防我们想要保留项目,并返回False以防我们想要过滤掉该值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取包含元组的列表的索引,其中元组的第一个元素与模式匹配

Haskell:在元组列表中查找第一个元素为x的元组

如何删除元组中元素的第一个实例?

如何从元组列表中删除第一个元素?

Haskell-内置元组,其中Ord定义为仅按第一个元素进行比较?

如何通过类方法迭代元组列表中每个元组的第一个元素?

通过haskell中的列表理解提取元组的第一个元素

如何基于第一个值Python替换元组排序列表中的元组

在Haskell中按第一个元素然后第二个元素对元组列表进行排序

从列表中的3个元组中获取第一个和第二个元素-Haskell

如果元组具有相同的第一个元素,如何聚合元组列表中的元素?

如何在两个不同的元组列表中与元组的第一个元素相交

如何按每个元组中的第一个元素对元组列表进行排序,并选择每组中最后一个元素最大的元组

Haskell:如果两个元组的第一个元素相等,则在元组列表中添加第二个元素?

如何根据包含pyspark中元组数组的rdd中的第一个元素进行过滤?

如何只考虑熊猫对象中元组的第一个元素

如何获取元组列表中的第一个元素?

如何提取每个子列表中每个元组的第一个元素?

如何在python中的每个列表/元组中修改第一个值?

遍历元组列表并仅解压缩第一个元素

如何从元组列表字典的所有键中输出所有第一个元素?

Scala:如何通过元组的第一个元素合并列表

Scala:仅映射元组中的第一个元素

如何过滤一组(int,str)元组,以仅在第一个元素中返回具有最小值的元组?

如何使用每个元组的第一个值作为键将六个元组列表连接到 Pandas 数据框中?

如何选择列表中的第一个元组并将其余的元组保存在Erlang中?

如何从Haskell列表中的元组中的列表中查找值?

如何在列表中的元组中检查第一个数字?

列表中的第一个元素haskell