我正在尝试实现一个按字母顺序返回下一个字母的函数。例如:
> returnNext 'A'
'B'
但是也:
> returnNext 'Z'
'A'
因此,该函数应按字母顺序(mod 26)在字符代码之间循环。
我想到了两种方法
import Data.Char
returnNext c = chr (((1 + ord c - ord 'A') `mod` 26) + ord 'A')
至少可以说这有点丑陋。
And:
returnNext 'Z' = 'A'
returnNext c = chr (ord c + 1)
当没有给出字母表中的字母时,两者的行为有所不同,但由于您没有指定在这种情况下应该发生什么,我假设它没问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)