Haskell-将小写字符转换为大写字符的函数
Haskell-function to convert lower case char to uppercase char
我在 Haskell 教程中偶然发现了一些似乎对我不起作用的代码。
fromEnum :: Char -> Int
toEnum :: Int -> Char
offset :: Int
offset = fromEnum 'A' - fromEnum 'a'
toUpper :: Char -> Char
toUpper ch = toEnum (fromEnum ch + offset)
摘自的教科书指出以下转换函数会将小写字符 Char 转换为大写字符。但是,当我尝试 运行 脚本时,我收到以下错误消息:
eval.hs:1:1:
The type signature for ‘fromEnum’ lacks an accompanying binding
(The type signature must be given where ‘fromEnum’ is declared)
eval.hs:2:1:
The type signature for ‘toEnum’ lacks an accompanying binding
(The type signature must be given where ‘toEnum’ is declared)
Failed, modules loaded: none.
我是 Haskell 的新手,所以有人可以告诉我我在这里缺少什么吗?教科书错了吗?
删除这些行:
fromEnum :: Char -> Int
toEnum :: Int -> Char
标准库已经定义了这些函数。通过添加以上行,您试图重新定义它们,这会触发错误。
教程可能提到它们存在,并没有邀请您在程序中添加这些功能。
我在 Haskell 教程中偶然发现了一些似乎对我不起作用的代码。
fromEnum :: Char -> Int
toEnum :: Int -> Char
offset :: Int
offset = fromEnum 'A' - fromEnum 'a'
toUpper :: Char -> Char
toUpper ch = toEnum (fromEnum ch + offset)
摘自的教科书指出以下转换函数会将小写字符 Char 转换为大写字符。但是,当我尝试 运行 脚本时,我收到以下错误消息:
eval.hs:1:1:
The type signature for ‘fromEnum’ lacks an accompanying binding
(The type signature must be given where ‘fromEnum’ is declared)
eval.hs:2:1:
The type signature for ‘toEnum’ lacks an accompanying binding
(The type signature must be given where ‘toEnum’ is declared)
Failed, modules loaded: none.
我是 Haskell 的新手,所以有人可以告诉我我在这里缺少什么吗?教科书错了吗?
删除这些行:
fromEnum :: Char -> Int
toEnum :: Int -> Char
标准库已经定义了这些函数。通过添加以上行,您试图重新定义它们,这会触发错误。
教程可能提到它们存在,并没有邀请您在程序中添加这些功能。