2013-12-23 36 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

相關問題