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

致命的

我试图通过列表理解在haskell的元组列表中提取一个元组的第一个元素,但不知何故它只是输出第一个然后停止,所以我决定通过递归来做到这一点,看起来像这样:

tuples :: (Ord a, Ord b) => [(a, b)] -> [a]
tuples [] = []
tuples ((x,y):xs) = x : tuples xs

现在,虽然这可行,但我想知道如何通过列表理解来做同样的事情。

威廉·范昂森

是的,您可以在列表推导中使用模式匹配,其中:

tuples :: [(a, b)] -> [a]
tuples xs = [ x | (x, _) <- xs ]

但可能最简单的方法就是使用fst :: (a, b) -> a

tuples :: [(a, b)] -> [a]
tuples = map fst

的类型约束不是(Ord a, Ord b)必需的:我们在任何地方都没有使用为属于类型类成员的类型定义的函数Ord

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

从元组列表中提取第一个元素到列表中

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

在列表中删除元组的第一个元素

提取列表中列表的第一个元素

如何通过嵌套列表中第一个元素的值提取子列表

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

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

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

列表中的第一个元素haskell

返回Haskell中列表的第一个元素

元组列表到元组 C# 列表中的第一个元素列表

python - 从元组中提取第一个元素

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

按元组的第一个元素分组列表

获取元组列表的第一个元素

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

在列表中通过条件的第一个元素之后添加一个元素

在 terraform 中获取元组的第一个元素

Erlang:获取列表中每个元组的第一个元素

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

获取Python列表中每个元组的第一个元素

Python从列表中删除元组的第一个元素

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

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

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

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

在Django模板中的元组列表的第一个元素中访问元组的第三项