我正在使用该函数fromEnum
将字符转换为其对应的ASCII Int.例如:
fromEnum 'A'
返回65.
现在,假设我有一个功能:
(fromEnum 'A')+1
然后想将返回值(66)转换为"B"的Char.这样做的最佳方法是什么?
谢谢!
您可以使用ord :: Char -> Int
和chr :: Int -> Char
功能Data.Char
.
> chr (ord 'a' + 1) 'b'
但是不要忘记import Data.Char
在源文件或:m +Data.Char
ghci中.
同样的事情:fromEnum :: Enum a => a -> Int
和toEnum :: Enum a => Int -> a
:
toEnum (fromEnum 'a' + 1) :: Char
这个表达式的最后一部分说haskell我们期望什么类型帮助类型系统推断正确的类型.但在这种情况下,我们可以放弃:: Char
:
isLower $ toEnum (fromEnum 'a' + 1)
因为isLower
有类型Char -> Bool
.因此,期待toEnum (fromEnum 'a' + 1)
为Char
.
无论如何,bheklilr的解决方案已经足够了:)我只是想向您展示解决问题的几种方法.