【发布时间】:2019-03-31 23:27:28
【问题描述】:
所以我正在尝试构建一个函数,它接受一个元组列表并找到具有最大第二个元素的元组。但是我遇到了模式匹配错误。
这是我的代码。
resultTuple :: [((Int,Int),Int)] -> (Int,Int)
resultTuple [] = error "something wrong"
resultTuple [x] = fst(x)
resultTuple (x:y:xs)
| snd(x) >= snd(y) = resultTuple(x:xs)
| snd(x) < snd(y) = resultTuple(y:xs)
这是我的错误。
Pattern match(es) are non-exhaustive
In an equation for ‘resultTuple’: Patterns not matched: (_:_:_)
【问题讨论】:
-
我怀疑这是错误的,但也许那个守卫需要最后一个案例(也许只是
| _ = error "something wrong")?我认为它看起来像是一套完整的模式,所以我自己也很困惑。
标签: haskell pattern-matching guard-clause