【发布时间】:2021-10-21 18:33:43
【问题描述】:
我是 Haskell 的新手,目前正在学习列表。
我有一个标记列表
[("Tom", 87, 78, 67), ("Dick", 56, 45, 72)]
我需要得到分数的总和和它的平均值。这是我的方法。
创建一个函数来计算每个候选人的分数总和列表
sumOfMarks = (\(a, b, c, d) -> b + c + d)
并将该函数映射到原始列表
newList = map sumOfMarks [("Tom", 87, 78, 67), ("Dick", 56, 45, 72)]
创建一个函数来计算每个候选人的平均分数列表
avgList = map (`div`3) newList
合并所有原始列表,newList 和 avgList
想要的输出是
finalList = [("Tom", 87, 78, 67, 232, 77.34), ("Dick", 56, 45, 72, 173, 57.67)]
另一个问题是 - 这是否是解决问题的最佳方法,是否有更好的方法?
【问题讨论】:
-
您可以使用将每个 4 元组映射到 5 元组的映射。
标签: list haskell merge tuples zip