我試圖創建一個名爲place的新數據聲明。在Haskell的case語句中使用默認值
它看起來像這樣:
data place = United States | France | England | Germany | Mexico | Canada
我的希望是,然後使用一個名爲帽功能採取的地方,它的資本,像這樣:
cap :: place -> String
cap a = case a of
Spain -> "Madrid"
France -> "Paris"
England -> "London"
Germany -> "Berlin"
Mexico -> "Mexico City"
Canada -> "Ottawa"
_ -> undefined
但是最後的情況下,我試圖捕獲數據聲明中可能不存在的所有其他條目不起作用。例如,如果我在GHCI中輸入capital Wales
,我不會收到未定義的答覆。相反,我得到一個不在範圍內的錯誤。有人可以幫我解決我的困惑,也許可以提供一種嘗試捕捉其他情況的合法方式嗎?
暫時將另一個國家添加到您的代碼中'data Place = Temp |美國| ...'那麼你可以測試'帽子溫度'。 – AndrewC 2013-02-12 23:19:59
(您的數據聲明現在已被打破,應該說'data Place = UnitedStates | France | England | Germany | Mexico | Canada'。) – AndrewC 2013-02-12 23:22:15