ano*_*on1 8 haskell compiler-errors
我创建了一段代码:
intToDigit :: Char -> Int
ord :: Char -> Int
intToDigit c = ord c - ord 'a'
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我收到此错误消息:
ChangeVowels.hs:2:1:`ord'的类型签名缺少附带的绑定
ChangeVowels.hs:4:16:不在范围内:`ord'
ChangeVowels.hs:4:24:不在范围内:`ord'
我尝试过,Import data.char
但这也不起作用.
删除行:
ord :: Char -> Int
Run Code Online (Sandbox Code Playgroud)
或者给它一个定义.
将函数命名为intToDigit是一个坏主意,而在Data.Char中已经使用它来做与你正在做的相反的事情.
你的函数是Data.Char.digitToInt,它的实现也适用于十六进制:
digitToInt :: Char -> Int
digitToInt c
| isDigit c = ord c - ord '0'
| c >= 'a' && c <= 'f' = ord c - ord 'a' + 10
| c >= 'A' && c <= 'F' = ord c - ord 'A' + 10
| otherwise = error ("Char.digitToInt: not a digit " ++ show c) -- sigh
Run Code Online (Sandbox Code Playgroud)
实际上这不是你定义的......为什么'a'
你的代码?