我正在尝试创建一个名为 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 中输入,我不会得到未定义的响应。相反,我得到一个不在范围内的错误。有人可以帮助我解决我的困惑,也许可以提供一种合法的方式来尝试捕捉其他案件吗?