【问题标题】:How to return the next letter in the alphabet of given letter wrapped around in Haskell [closed]如何在Haskell中返回给定字母的字母表中的下一个字母[关闭]
【发布时间】:2013-12-23 15:39:15
【问题描述】:

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

> returnNext 'A'
  'B'

还有:

> returnNext 'Z'
  'A'

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

【问题讨论】:

  • stackoverflow.com/questions/3261236/… 开始,然后弄清楚如何使用环绕来增加 数字
  • 你试过什么?您似乎已经知道该怎么做,但我没有看到任何代码。

标签: haskell char modulo


【解决方案1】:

想到两种方法

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

这至少可以说是丑陋的。

还有:

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

当没有给出字母时,两者的行为会有所不同,但是由于您没有指定在这种情况下应该发生什么,所以我认为没关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-16
    • 2019-05-14
    • 1970-01-01
    • 2023-04-02
    • 2016-01-10
    • 2017-07-29
    • 2017-04-04
    • 2023-04-09
    相关资源
    最近更新 更多