gpt4 book ai didi

haskell - 模式不匹配 : (_:_:_)

转载 作者:行者123 更新时间:2023-12-05 09:15:06 31 4
gpt4 key购买 nike

所以我正在尝试构建一个函数,它接受一个元组列表并找到具有最大第二个元素的元组。但是我遇到了模式匹配错误。

这是我的代码。

    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: (_:_:_)

最佳答案

x:y:xs 的所有案例有一个条件,编译器警告你你没有涵盖所有条件都为假的情况。也就是说,编译器对同时 snd x >= snd y 的情况发出警告。和 snd x < snd y是假的。

当然这实际上不可能发生,但编译器并没有意识到这一点。要消除警告,您可以将第二个条件替换为 otherwise .

关于haskell - 模式不匹配 : (_:_:_),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53021655/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com