【问题标题】:How to "subtract" one character from another? [duplicate]如何从另一个字符中“减去”一个字符? [复制]
【发布时间】:2021-10-14 06:54:20
【问题描述】:

是否可以减去两个Char 值?例如

'B' - 'A' = 1, 
'C' - 'A' = 2

一些函数可以处理这个吗?

【问题讨论】:

    标签: haskell


    【解决方案1】:

    对于字符之间的差异,没有普遍定义的概念(例如,Kk 的相似性比 l 更相似,还是更小?)所以最安全的事情可能是是根据需求自己定义功能。您可以对字符范围进行保护匹配:

    import Data.Char
    
    charDist c d
     | isLower c, isLower d  = ...
     | isLower c, isUpper d  = ...
     | ...
    

    在每个范围内,您可能只使用 Unicode 作为代理空间。 Enum 类将 char 值映射到 int,可以通过明显的方式减去:

    charDist c d
     | isLower c, isLower d  = fromEnum c - fromEnum d
     | ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 2016-07-10
      • 2013-06-22
      • 1970-01-01
      相关资源
      最近更新 更多