在Haskell中查找字符的Unicode脚本

在Haskell中查找字符的Unicode脚本,haskell,unicode,Haskell,Unicode,我想写一个函数来检查一个Char代表一个西里尔字母,纯粹是出于教学的原因。俄语的简单近似是 isCyrillic c = let lc = toLower c in 'а' <= lc && lc <= 'я' 但这似乎也不是一个好的做法 理想情况下,函数应该是 isCyrillic c = unicodeScript c == Cyrillic 但这假设存在枚举Unicode脚本的类型(Unicode范围也可以)。某个地方有吗?来自text

我想写一个函数来检查一个
Char
代表一个西里尔字母,纯粹是出于教学的原因。俄语的简单近似是

isCyrillic c = 
    let lc = toLower c 
    in 'а' <= lc && lc <= 'я'
但这似乎也不是一个好的做法

理想情况下,函数应该是

isCyrillic c = unicodeScript c == Cyrillic
但这假设存在枚举Unicode脚本的类型(Unicode范围也可以)。某个地方有吗?

来自text icu的
Data.text.icu.Char
似乎符合要求:

import Data.Text.ICU.Char isCyrilic c = property Block c == Cyrillic 导入Data.Text.ICU.Char 易读c=属性c==
关于资源请求接近投票,我觉得标准库样式的东西(如日期和时间或Unicode)应该有一些回旋余地。我还要说,这与Haskell的具体案例特别相关,相对而言,Haskell的实际标准库的范围非常狭窄。 import Data.Text.ICU.Char isCyrilic c = property Block c == Cyrillic