haskell - 找到键值列表的最大值
问题描述
嘿伙计们,我正在尝试构建一个程序,在该程序中检查哪一对具有最大值并在列表中返回,例如向量[(60,3),(10,4),(5,30)] 返回 [(5,30 )] 这就是我的想法:
vector :: Ord a => [(t, a)] -> [(t, a)]
vector (x:xs) = maxTail x xs
where maxTail currentMax [] = currentMax
maxTail (m, n) (p:ps)
| n < (snd p) = maxTail p ps
| otherwise = maxTail (m, n) ps
错误是无法匹配预期类型
解决方案
maxTail
返回一对(最大的一对),而vector
' 类型承诺返回一对列表。因此不匹配。完整的类型错误(未发布)应该提供此作为提示。
你真的需要返回一个列表吗?只返回一对,所以我会将vector
' 的类型.... -> (t, a)
改为。
推荐阅读
- java - 当我尝试通过 Hibernate 添加到数据库时,我错过了什么?
- c# - 清除浏览器缓存会删除 Asp Net core 中的 Tempdata?
- perl - 使用 Perl Dancer2 开始 Web 开发
- asp.net-mvc - Request.IsAuthenticated 总是假的
- c# - 将 CommandParameter 设置为与命令“RelativeSource Binding”不同的绑定
- excel - 在 Excel VBA 中按名称单独访问组中的形状
- c# - 如何在 C# 中正确使用 while 循环?
- reactjs - React-spring如何正确地为数组的字母设置动画
- seaborn - Seaborn Hue - ValueError:无法解释输入“类型”
- python - 如何使用计时器模块在 pynput 键盘侦听器中进行操作