【发布时间】:2010-07-14 13:09:12
【问题描述】:
以下函数将不会加载:
charName :: a -> String
charName 'a' = "Alpha"
charName 'b' = "Bravo"
charName 'c' = "Charlie"
charName 'd' = "Delta"
charName 'e' = "Echo"
charName 'f' = "Foxtrot"
charName 'g' = "Golf"
charName 'h' = "Hotel"
charName 'i' = "India"
charName 'j' = "Juliet"
charName 'k' = "Kilo"
charName 'l' = "Lima"
charName 'm' = "mike"
charName 'n' = "November"
charName 'o' = "Oscar"
charName 'p' = "Papa"
charName 'q' = "Quebec"
charName 'r' = "Romeo"
charName 's' = "Sierra"
charName 't' = "Tango"
charName 'u' = "Uniform"
charName 'v' = "Victor"
charName 'w' = "Whiskey"
charName 'x' = "X-ray"
charName 'y' = "Yankee"
charName 'z' = "Zulu"
charName 0 = "Zero"
charName 1 = "One"
charName 2 = "Two"
charName 3 = "Three"
charName 4 = "Four"
charName 5 = "Five"
charName 6 = "Six"
charName 7 = "Seven"
charName 8 = "Eight"
charName 9 = "Nine"
charName x = ""
它给了我以下错误:
[1 of 1] 编译 Main(baby.hs,解释)
baby.hs:41:9: 无法匹配预期类型
a' against inferred typeChar'a' is a rigid type variable bound by the type signature forcharName' at baby.hs:40:12 在模式中:'a' 在 `charName' 的定义中: charName 'a' = "Alpha"baby.hs:67:9: (Num Char) 没有实例 源自文字
0' at baby.hs:67:9 Possible fix: add an instance declaration for (Num Char) In the pattern: 0 In the definition ofcharName': charName 0 = "Zero" 失败,已加载模块:无。
不知道我怎样才能让它工作。有人有什么想法吗?
【问题讨论】:
-
你的 0, 1, 2... 8, 9 实际上是数字而不是字符。尝试向它们添加“0”、“1”、“2”,使它们成为字符。
-
这不应该是社区维基。
-
如果我想接受数字作为输入怎么办?
标签: haskell