字符串仅包含 haskell 中的字母表
String contains only the alphabet in haskell
我想做一个函数来判断字符是否是 Haskell
中的字母
isLetter :: Char -> Bool
所以结果可能是这样的:如果我键入 isLetter 'c'
,结果将是 True
,如果是 isLetter ' '
,则结果是 False
.
您可以使用 Data.Char.isAlpha
来检查字符是否为字母符号。
你可以自己定义这个函数,
isLetter :: Char -> Bool
isLetter 'A' = True
isLetter 'B' = True
...
isLetter 'Z' = True
但是小写字母呢? 'ß'
、'ü'
、'Ф'
、'Й'
或 'Æ'
及其变体 uppercase/lowercase 等外国字母呢?因为 Unicode 非常复杂,所以对于任何 production-level 使用,您应该依赖于已经构建的库函数。当您不知道它们叫什么时,go to Hoogle and search for "Char -> Bool
" 并且您通常会被指向一个完全包含您想要的内容的库。 :-)
例如,Data.Char.isAlpha
的文档说:
Selects alphabetic Unicode characters (lower-case, upper-case and title-case letters, plus letters of caseless scripts and modifiers letters). This function is equivalent to Data.Char.isLetter
.
我打赌你没有想到 title-case 字母、无大小写字母 和 修饰字母! (我没有。)
我什至不知道 修饰字母 存在。显然,'ˀ'
(glottal stop) is a letter used by the Squamish people 位于加拿大不列颠哥伦比亚省西南部。那里有加拿大的路标,您的功能没有考虑在内!
你会是那个告诉 Ḇøᵇ 他不能上飞机的人吗?! :Đ
我认为这对你有用。
isLetter :: Char -> Bool
isLetter c = (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z'))
我们可以使用elem
函数和范围来判断一个字符是否是字母。请注意,范围 ['a'..'z']
包含列表中从 a 到 z 的所有字母。同样,范围 ['A'..'Z']
是一个包含所有大写字母的列表。因此,该函数将检查给定字符是否属于这些列表中的任何一个,如果是,它 returns True
;否则,它 returns False
.
isLetter :: Char -> Bool
isLetter character = if character `elem` ['a'..'z'] || character `elem` ['A'..'Z']
then True
else False
我想做一个函数来判断字符是否是 Haskell
中的字母isLetter :: Char -> Bool
所以结果可能是这样的:如果我键入 isLetter 'c'
,结果将是 True
,如果是 isLetter ' '
,则结果是 False
.
您可以使用 Data.Char.isAlpha
来检查字符是否为字母符号。
你可以自己定义这个函数,
isLetter :: Char -> Bool
isLetter 'A' = True
isLetter 'B' = True
...
isLetter 'Z' = True
但是小写字母呢? 'ß'
、'ü'
、'Ф'
、'Й'
或 'Æ'
及其变体 uppercase/lowercase 等外国字母呢?因为 Unicode 非常复杂,所以对于任何 production-level 使用,您应该依赖于已经构建的库函数。当您不知道它们叫什么时,go to Hoogle and search for "Char -> Bool
" 并且您通常会被指向一个完全包含您想要的内容的库。 :-)
例如,Data.Char.isAlpha
的文档说:
Selects alphabetic Unicode characters (lower-case, upper-case and title-case letters, plus letters of caseless scripts and modifiers letters). This function is equivalent to
Data.Char.isLetter
.
我打赌你没有想到 title-case 字母、无大小写字母 和 修饰字母! (我没有。)
我什至不知道 修饰字母 存在。显然,'ˀ'
(glottal stop) is a letter used by the Squamish people 位于加拿大不列颠哥伦比亚省西南部。那里有加拿大的路标,您的功能没有考虑在内!
你会是那个告诉 Ḇøᵇ 他不能上飞机的人吗?! :Đ
我认为这对你有用。
isLetter :: Char -> Bool
isLetter c = (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z'))
我们可以使用elem
函数和范围来判断一个字符是否是字母。请注意,范围 ['a'..'z']
包含列表中从 a 到 z 的所有字母。同样,范围 ['A'..'Z']
是一个包含所有大写字母的列表。因此,该函数将检查给定字符是否属于这些列表中的任何一个,如果是,它 returns True
;否则,它 returns False
.
isLetter :: Char -> Bool
isLetter character = if character `elem` ['a'..'z'] || character `elem` ['A'..'Z']
then True
else False