【发布时间】:2021-10-14 06:54:20
【问题描述】:
是否可以减去两个Char 值?例如
'B' - 'A' = 1,
'C' - 'A' = 2
一些函数可以处理这个吗?
【问题讨论】:
标签: haskell
是否可以减去两个Char 值?例如
'B' - 'A' = 1,
'C' - 'A' = 2
一些函数可以处理这个吗?
【问题讨论】:
标签: haskell
对于字符之间的差异,没有普遍定义的概念(例如,K 与 k 的相似性比 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
| ...
【讨论】: