2013-12-23 38 views
0

我试图实现一个函数,按字母顺序返回下一个字母。例如:如何返回给定的字母在Haskell中包装的字母表中的下一个字母

> returnNext 'A' 
    'B' 

但也:

> returnNext 'Z' 
    'A' 

函数应从而按字母顺序排列字符码之间循环(MOD 26)。

+2

从http://stackoverflow.com/questions/3261236/how-to-get-ascii-value-of-character-in-haskell开始,然后弄清楚如何使用换行来增加*数字*。 –

+0

你有什么尝试?您似乎已经知道该怎么做,但我没有看到任何代码。 – bheklilr

回答

6

两种方式浮现在脑海

import Data.Char 
returnNext c = chr (((1 + ord c - ord 'A') `mod` 26) + ord 'A') 

这是一种丑恶的,至少可以说。

和:

returnNext 'Z' = 'A' 
returnNext c = chr (ord c + 1) 

两种不同的表现没有给出一个字母的时候,但因为你没有指定在这种情况下会发生什么,我会以为这是确定。

+0

非常感谢:)。 – user3094936

相关问题