Я пытаюсь создать новое объявление данных, называемое местом.Использование значения по умолчанию в выражении case в Haskell
Это выглядит следующим образом:
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
Однако последний случай, где я пытаюсь поймать все другие записи, которые могут не существовать в декларации данных, не работает. Если я вхожу в capital Wales
, например, в GHCI, я не получаю неопределенный ответ. Вместо этого я получаю ошибку не в области. Может ли кто-нибудь помочь мне с моей путаницей и, возможно, предоставить законный способ попытаться поймать другие случаи?
Временно добавьте другую страну в данные вашего кода. Place = Temp | Соединенные Штаты Америки | ... 'тогда вы можете проверить' cap Temp'. – AndrewC
(Ваше объявление данных нарушено на данный момент. Оно должно указывать «данные Place = UnitedStates | France | England | Germany | Mexico | Canada'.) – AndrewC