gpt4 book ai didi

haskell - 在 Haskell 的 case 语句中使用默认值

转载 作者:行者123 更新时间:2023-12-03 14:39:09 25 4
gpt4 key购买 nike

我正在尝试创建一个名为 place 的新数据声明。

它看起来像这样:
data place = United States | France | England | Germany | Mexico | Canada
我希望然后使用一个名为 cap 的函数将这个位置带到它的首都,如下所示:

cap :: place -> String
cap a = case a of

Spain -> "Madrid"
France -> "Paris"
England -> "London"
Germany -> "Berlin"
Mexico -> "Mexico City"
Canada -> "Ottawa"
_ -> undefined

但是,在最后一种情况下,我试图捕获数据声明中可能不存在的所有其他条目不起作用。如果我输入 capital Wales例如在 GHCI 中,我没有得到未定义的响应。相反,我得到一个不在范围内的错误。有人可以帮助我解决我的困惑,也许可以提供一种合法的方式来尝试捕捉其他案件吗?

最佳答案

问题不在于你如何处理丢失的案例——你做得很好。问题是 Wales构造函数根本不存在。因此,就像您尝试使用尚 undefined variable 或函数一样,您会收到编译错误。您的 cap函数甚至不会被调用,所以你不能对它做任何改变,会影响这种行为。您无法对使用不存在的构造函数的代码进行编译。

关于haskell - 在 Haskell 的 case 语句中使用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14843578/

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