首页 > 解决方案 > 找到键值列表的最大值

问题描述

嘿伙计们,我正在尝试构建一个程序,在该程序中检查哪一对具有最大值并在列表中返回,例如向量[(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

错误是无法匹配预期类型

标签: haskell

解决方案


maxTail返回一对(最大的一对),而vector' 类型承诺返回一对列表。因此不匹配。完整的类型错误(未发布)应该提供此作为提示。

你真的需要返回一个列表吗?只返回一对,所以我会将vector' 的类型.... -> (t, a)改为。


推荐阅读