haskell - 如何返回在Haskell中包裹的给定字母的字母表中的下一个字母

标签 haskell char modulo

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




我正在尝试实现一个按字母顺序返回下一个字母的函数。例如:

> returnNext 'A'
  'B'

但是也:
> returnNext 'Z'
  'A'

因此,该函数应按字母顺序(mod 26)在字符代码之间循环。

最佳答案

想到了两种方法

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

至少可以说这有点丑陋。

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

当没有给出字母表中的字母时,两者的行为都不同,但是由于您没有指定在这种情况下应该发生什么,我认为这没问题。

关于haskell - 如何返回在Haskell中包裹的给定字母的字母表中的下一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746646/

相关文章:

haskell - 重新定义 IO 以简化调试?

list - 按元组的第二个元素对元组列表进行排序,无需高阶函数或递归

Python负数模正数

java - 无法正确计算字符数

java - 遍历字符数组列表

math - 如何在 MOD 表达式中找到变量值?

javascript - 通过负索引访问数组元素

haskell - Haskell 中的并行 "Folding"

java - Haskell 中的 Android 应用程序

c++ - 使用 C++ 样式转换将 int 转换为 char