gpt4 book ai didi

list - 函数中的非详尽模式 (Haskell)

转载 作者:行者123 更新时间:2023-12-04 01:57:33 24 4
gpt4 key购买 nike

我有两个代码片段抛出相同的错误:

Prelude> sum' [] = 0
Prelude> sum' (x:xs) = x + sum' xs
Prelude> sum' [1,2,3,4,5]
*** Exception: <interactive>:142:1-25: Non-exhaustive patterns in function sum'

还有以下内容:

Prelude> prod [] = 1
Prelude> prod (x:xs) = x * (prod xs)
Prelude> prod [1,2,3,4,5]
*** Exception: <interactive>:139:1-27: Non-exhaustive patterns in function prod

我肯定错过了一个模式,但它是什么?另外,出现这样的错误我该怎么办?使用模式匹配定义函数时我应该如何思考? (我要求一种方法/技术)

最佳答案

要创建具有模式匹配的函数,或在 ghci 命令行中使用多行,您应该使用 {} 并在您的情况下使用 ; 分隔:

Prelude> let { sum' [] = 0 ; sum' (x:xs) = x + sum' xs }
Prelude> sum' [1,2,3,4,5]
=> 15

否则,您将仅将一个方程(在本例中为最后一个方程)绑定(bind)到函数名称 sum',这就是模式匹配失败的原因

关于list - 函数中的非详尽模式 (Haskell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49518884/

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