【发布时间】:2018-04-22 20:27:23
【问题描述】:
我是 Haskell 的新手,我正在尝试一些东西。我在比较元组元素时遇到了一些问题。
假设我有一个元组[(1,3),(2,1),(4,4)]。
我想将每对索引相互比较,并将一些数据保存到计数器值中并返回该值。
例如我想要的是这样的:
元组:[(a,b),(c,d),(e,f)]
当a>b我想add 3到柜台。
当a==b 我想add 1 到柜台。
否则add 0 到柜台。 (c,d) 和 (e,f) 相同。
遍历我的元组后,我想返回计数器。
所以在我的示例中,我有元组
[(1,3),(2,1),(4,4)]。
该功能应该做
由于1<3将 0 添加到计数器。
由于2>1计数器加 3。
由于4=4计数器加 1。
毕竟返回0+3+1 = 4。
有什么想法吗?提前谢谢!
(编辑)
calculateWins :: [(Int,Int)]->Int
calculateWins d ((a,b) :xs) = x
where x
|a>b = 3
|a==b = 1
|otherwise = 0
【问题讨论】:
-
对某事感到陌生并不是不努力的借口。请展示你尝试了什么,什么没用,你有什么想法,为什么这些都不成功。
-
此外,
[(1,3),(2,1),(4,4)]不是 元组,它是 2 元组的 列表。 -
@WillemVanOnsem 是的,你是对的。对不起,这确实是一个元组列表。我已经编辑了帖子,添加了一些我编写的代码,但我一开始并没有这样做,因为我认为这不值得一提。