【问题标题】:Sum of the first elem of a 3-tuples list三元组列表的第一个元素的总和
【发布时间】:2011-12-04 06:02:34
【问题描述】:

我是编程方面的新手:/

我需要创建一个函数,从 3 元组列表中检索第一个元素的总和。

我有类似的东西:

tuples = [(11,"11","11"),(22,"22","22"),(33,"33","33"),(44,"44","44"),(55,"55","55"),(66,"66","66")]

我需要列表中每个 3 元组的第一个元素的总和。 = 11+22+33+44+55

模式匹配可能吗?地图?

【问题讨论】:

  • 对不起...列表。 = 11+22+33+44+55+66 :P

标签: haskell tuples


【解决方案1】:

使用sumlist comprehension

sum [x | (x, _, _) <- tuples]

【讨论】:

    【解决方案2】:

    如果你想要pointfree,你可以试试:

    > let f = sum . map (\(x, _, _) -> x)
    > f [(11,"11","11"),(22,"22","22"),(33,"33","33")]
    66
    

    注意:这里有一点x,我们无法避免因为fst3 :: (a,b,c) -&gt; a内置的缺失

    【讨论】:

    • 你为什么称(\(x,_,_) -&gt; x)为“无积分”?实际上它有“点”x。
    • @ДМИТРИЙ 对不起我的英语。我的观点是,这是 OP 在没有不安全强制的情况下可以实现的最无点版本,我不建议这样做。
    猜你喜欢
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多