Data.Char
| Авторские права | (c) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Устойчивость | стабильная |
| Переносимость | переносимая |
| Safe Haskell | Надежная |
| Язык | Haskell2010 |
Описание
Тип Char и связанные с ним операции.
Тип символов Char представляет кодовое пространство Unicode, а его элементы — кодовые точки, как и в определениях D9 и D10 стандарта Unicode.
Символьные литералы в Haskell записываются в одинарных кавычках: 'Q', 'Я' или 'Ω'. Чтобы представить сам одинарную кавычку, используйте '\'', а для обратной косой черты — '\\'. Полную грамматику можно найти в разделе 2.6 отчета о языке Haskell 2010.
Для указания символа по его кодовой точке можно использовать десятичное, шестнадцатеричное или восьмеричное представление: '\65', '\x41' и '\o101' — это альтернативные формы 'A'. Наибольшая кодовая точка — '\x10ffff'.
Существует специальный синтаксис для символов управления ASCII:
| Эскейп | Альтернативы | Значение |
|---|---|---|
'\NUL' |
'\0' |
нулевой символ |
'\SOH' |
'\1' |
начало заголовка |
'\STX' |
'\2' |
начало текста |
'\ETX' |
'\3' |
конец текста |
'\EOT' |
'\4' |
конец передачи |
'\ENQ' |
'\5' |
запрос |
'\ACK' |
'\6' |
подтверждение |
'\BEL' |
'\7', '\a'
|
звонок (сигнал тревоги) |
'\BS' |
'\8', '\b'
|
возврат на один символ |
'\HT' |
'\9', '\t'
|
горизонтальная табуляция |
'\LF' |
'\10', '\n'
|
перевод строки (новая строка) |
'\VT' |
'\11', '\v'
|
вертикальная табуляция |
'\FF' |
'\12', '\f'
|
формат страницы |
'\CR' |
'\13', '\r'
|
возврат каретки |
'\SO' |
'\14' |
вывод |
'\SI' |
'\15' |
ввод |
'\DLE' |
'\16' |
эскейп канала данных |
'\DC1' |
'\17' |
управление устройством 1 |
'\DC2' |
'\18' |
управление устройством 2 |
'\DC3' |
'\19' |
управление устройством 3 |
'\DC4' |
'\20' |
управление устройством 4 |
'\NAK' |
'\21' |
отрицательное подтверждение |
'\SYN' |
'\22' |
синхронный пропуск |
'\ETB' |
'\23' |
конец блока передачи |
'\CAN' |
'\24' |
отмена |
'\EM' |
'\25' |
конец носителя |
'\SUB' |
'\26' |
замена |
'\ESC' |
'\27' |
эскейп |
'\FS' |
'\28' |
разделитель файлов |
'\GS' |
'\29' |
разделитель групп |
'\RS' |
'\30' |
разделитель записей |
'\US' |
'\31' |
разделитель единиц |
'\SP' |
'\32', ' '
|
пробел |
'\DEL' |
'\127' |
удаление |
Data.Char предоставляет утилиты для работы с символами.
Экземпляры
| IsChar Char Источник | С версии: base-2.1 |
| PrintfArg Char Источник | С версии: base-2.1 |
Определено в Text.Printf | |
| Data Char Источник | С версии: base-4.0.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Char -> c Char Источник gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Char Источник toConstr :: Char -> Constr Источник dataTypeOf :: Char -> DataType Источник dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Char) Источник dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Char) Источник gmapT :: (forall b. Data b => b -> b) -> Char -> Char Источник gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Источник gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Источник gmapQ :: (forall d. Data d => d -> u) -> Char -> [u] Источник gmapQi :: Int -> (forall d. Data d => d -> u) -> Char -> u Источник gmapM :: Monad m => (forall d. Data d => d -> m d) -> Char -> m Char Источник gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Источник gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Источник | |
| Bounded Char Источник | С версии: base-2.1 |
| Enum Char Источник | С версии: base-2.1 |
Определено в GHC.Internal.TH.Lift | |||||
| Generic1 (URec Символ :: k -> Тип) Исходный код | |||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Eq1 (UChar :: Тип -> Тип) Исходный код | С момента: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes | |||||
| Ord1 (UChar :: Тип -> Тип) Исходный код | С момента: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes МетодыliftCompare :: (a -> b -> Порядок) -> UChar a -> UChar b -> Порядок Исходный код | |||||
| Show1 (UChar :: Тип -> Тип) Исходный код | С момента: base-4.21.0.0 |
||||
Определено в Data.Functor.Classes МетодыliftShowsPrec :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> Целое -> UChar a -> ShowS Исходный код liftShowList :: (Целое -> a -> ShowS) -> ([a] -> ShowS) -> [UChar a] -> ShowS Исходный код | |||||
| Foldable (UChar :: Тип -> Тип) Исходный код | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Связанные типы
| |||||
| Show (URec Символ p) Источник | С момента: base-4.9.0.0 |
||||
| Eq (URec Символ p) Источник | С момента: base-4.9.0.0 |
||||
| Ord (URec Символ p) Источник | С момента: base-4.9.0.0 |
||||
Определено в GHC.Internal.Generics Методыcompare :: URec Символ p -> URec Символ p -> Ordering Источник (<) :: URec Символ p -> URec Символ p -> Bool Источник (<=) :: URec Символ p -> URec Символ p -> Bool Источник (>) :: URec Символ p -> URec Символ p -> Bool Источник (>=) :: URec Символ p -> URec Символ p -> Bool Источник max :: URec Символ p -> URec Символ p -> URec Символ p Источник min :: URec Символ p -> URec Символ p -> URec Символ p Источник | |||||
| data URec Char (p :: k) Source |
Используется для маркировки случаев С тех пор: base-4.9.0.0 |
| type Compare (a :: Char) (b :: Char) Source | |
Определено в GHC.Internal.Data.Type.Ord | |
| type Rep1 (URec Char :: k -> Type) Source | С тех пор: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
| type Rep (URec Char p) Source | С тех пор: base-4.9.0.0 |
Определено в GHC.Internal.Generics | |
Классификация символов
Символы Unicode делятся на буквы, цифры, знаки, знаки препинания, символы, разделители (включая пробелы) и другие (включая управляющие символы).
isControl :: Char -> Bool Source
Выбирает управляющие символы, которые являются непечатаемыми символами подмножества Latin-1 Unicode.
isSpace :: Char -> Bool Source
Возвращает True для любого символа пробела Unicode и управляющих символов \t, \n, \r, \f, \v.
isLower :: Char -> Bool Source
Выбирает строчные буквенные символы Unicode (буквы).
Примечание: этот предикат не работает для символов, похожих на буквы, таких как: 'ⓐ' (U+24D0 округлённая строчная буква латинского a) и 'ⅳ' (U+2173 маленькая римская цифра четыре). Это связано с выбором только символов с GeneralCategory LowercaseLetter.
См. isLowerCase для более интуитивного предиката.
isLowerCase :: Char -> Bool Source
Выбирает строчные символы Unicode, похожие на буквы.
Примечание: этот предикат выбирает символы с свойством Unicode Lowercase, которые включают символы, похожие на буквы, такие как: 'ⓐ' (U+24D0 округлённая строчная буква латинского a) и 'ⅳ' (U+2173 маленькая римская цифра четыре).
См. isLower для устаревшего предиката.
С тех пор: base-4.18.0.0
isUpper :: Char -> Bool Source
Выбирает прописные или строчные буквенные символы Unicode (буквы). Строчный регистр используется небольшим количеством лигатур букв, таких как односимвольные формы Lj.
Примечание: этот предикат не работает для символов, похожих на буквы, таких как: 'Ⓐ' (U+24B6 округлённая заглавная буква латинского A) и 'Ⅳ' (U+2163 римская цифра четыре). Это связано с выбором только символов с GeneralCategory UppercaseLetter или TitlecaseLetter.
См. isUpperCase для более интуитивного предиката. Обратите внимание, что в отличие от isUpperCase, isUpper выбирает строчные символы, такие как 'Dž' (U+01C5 латинская заглавная буква d с маленькой буквой z с галочкой) или 'ᾯ' (U+1FAF греческая заглавная буква омега с дазией и периспомене и просгеграмменеи).
isUpperCase :: Char -> Bool Source
Выбирает заглавные символы Unicode, похожие на буквы.
Примечание: этот предикат выбирает символы с свойством Unicode Uppercase, которые включают символы, похожие на буквы, такие как: 'Ⓐ' (U+24B6 округлённая заглавная буква латинского A) и 'Ⅳ' (U+2163 римская цифра четыре).
См. isUpper для предикатов устаревшего вида. Обратите внимание, в отличие от isUpperCase, isUpper выбирает символы в стиле заглавной буквы, такие как 'Dž' (U+01C5 латинская заглавная буква d с малой буквой z с диакритикой) или 'ᾯ' (U+1FAF греческая заглавная буква омега с дазией, периспомени и просгеграммени).
С момента: base-4.18.0.0
isAlpha :: Char -> Bool Source
Выбирает буквенные символы Юникода (строчные, прописные и заглавные, а также буквы без учета регистра и модификаторы букв). Эта функция эквивалентна isLetter.
Эта функция возвращает True если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае False:
Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникода. В этом же документе определяется, что является и не является "Буквой".
isAlphaNum :: Char -> Bool Source
Выбирает буквенные или числовые символы Юникода.
Обратите внимание, что числовые цифры вне диапазона ASCII, а также числовые символы, которые не являются цифрами, выбираются этой функцией, но не isDigit. Такие символы могут быть частью идентификаторов, но не используются принтером и читателем для представления чисел, например, римские цифры, как V, полные цифры, как '1' (также известные как '65297').
Эта функция возвращает True если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае False:
UppercaseLetterLowercaseLetterTitlecaseLetterModifierLetterOtherLetterDecimalNumberLetterNumberOtherNumber
isPrint :: Char -> Bool Source
Выбирает печатные символы Юникода (буквы, цифры, знаки, знаки препинания, символы и пробелы).
Эта функция возвращает False если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае True:
isDigit :: Char -> Bool Source
Выбирает цифры ASCII, т.е. '0'..'9'.
isOctDigit :: Char -> Bool Source
Выбирает восьмеричные цифры ASCII, т.е. '0'..'7'.
isHexDigit :: Char -> Bool Source
Выбирает шестнадцатеричные цифры ASCII, т.е. '0'..'9', 'a'..'f', 'A'..'F'.
isLetter :: Char -> Bool Source
Выбирает буквенные символы Юникода (строчные, прописные и заглавные, а также буквы без учета регистра и модификаторы букв). Эта функция эквивалентна isAlpha.
Эта функция возвращает True если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае False:
Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникода. В этом же документе определяется, что является и не является "Буквой".
Примеры
Базовое использование:
>>> isLetter 'a' True >>> isLetter 'A' True >>> isLetter 'λ' True >>> isLetter '0' False >>> isLetter '%' False >>> isLetter '♥' False >>> isLetter '\31' False
Убедитесь, что isLetter и isAlpha эквивалентны.
>>> let chars = [(chr 0)..] >>> let letters = map isLetter chars >>> let alphas = map isAlpha chars >>> letters == alphas True
Выбирает символы-знаки Юникода, например, знаки диакритики и им подобные, которые объединяются с предшествующими символами.
Эта функция возвращает True если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае False:
Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникода. В этом же документе определяется, что является и не является "Знаком".
Примеры
Базовое использование:
>>> isMark 'a' False >>> isMark '0' False
Знаки диакритики, такие как знаки ударения, обычно должны следовать за другим символом, прежде чем стать печатными:
>>> map isMark "ò" [False,True]
Игры слов не обязательно поддерживаются:
>>> isMark '✓' False
isNumber :: Char -> Bool Source
Выбирает числовые символы Юникода, включая цифры из различных письменных систем, римские цифры и т.п.
Эта функция возвращает True если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае False:
Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникода. В этом же документе определяется, что является и не является "Числом".
Примеры
Базовое использование:
>>> isNumber 'a' False >>> isNumber '%' False >>> isNumber '3' True
ASCII '0' по '9' — все числа:
>>> and $ map isNumber ['0'..'9'] True
Римские цифры Юникода также являются "числами":
>>> isNumber 'Ⅸ' True
isPunctuation :: Char -> Bool Source
Выбирает символы пунктуации Юникода, включая различные виды соединителей, скобок и кавычек.
Эта функция возвращает True если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае False:
ConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuationInitialQuoteFinalQuoteOtherPunctuation
Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникода. В этом же документе определяется, что является и не является "Пунктуацией".
Примеры
Базовое использование:
>>> isPunctuation 'a' False >>> isPunctuation '7' False >>> isPunctuation '♥' False >>> isPunctuation '"' True >>> isPunctuation '?' True >>> isPunctuation '—' True
isSymbol :: Char -> Bool Source
Выбирает символы-символы Юникода, включая математические и валютные символы.
Эта функция возвращает True если ее аргумент имеет один из следующих GeneralCategoryов, в противном случае False:
Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникода. В этом же документе определяется, что является и не является "Символом".
Примеры
Основное использование:
>>> isSymbol 'a' False >>> isSymbol '6' False >>> isSymbol '=' True
Определение «математического символа» может быть немного неинтуитивным в зависимости от опыта:
>>> isSymbol '+' True >>> isSymbol '-' False
isSeparator :: Символ -> Булево Источник
Выбирает символы Unicode-пробелов и разделителей.
Эта функция возвращает True если её аргумент содержит один из следующих GeneralCategoryов, или False в противном случае:
Эти классы определены в Базе данных символов Unicode, которая является частью стандарта Unicode. В том же документе определено, что является, а что нет, «разделителем».
Примеры
Основное использование:
>>> isSeparator 'a' False >>> isSeparator '6' False >>> isSeparator ' ' True
Предупреждение: символы новой строки и табуляции не считаются разделителями.
>>> isSeparator '\n' False >>> isSeparator '\t' False
Но некоторые более экзотические символы являются (например, HTML):
>>> isSeparator '\160' True
Поддиапазоны
isAscii :: Символ -> Булево Источник
Выбирает первые 128 символов набора символов Unicode, соответствующих набору символов ASCII.
isLatin1 :: Символ -> Булево Источник
Выбирает первые 256 символов набора символов Unicode, соответствующих набору символов ISO 8859-1 (Latin-1).
isAsciiUpper :: Символ -> Булево Источник
Выбирает прописные буквы ASCII, то есть символы, удовлетворяющие как isAscii, так и isUpper.
isAsciiLower :: Символ -> Булево Источник
Выбирает строчные буквы ASCII, то есть символы, удовлетворяющие как isAscii, так и isLower.
Общие категории Unicode
data GeneralCategory Источник
Общие категории Unicode (столбец 2 таблицы UnicodeData) в порядке, указанном в стандарте Unicode (в частности, в базе данных символов Unicode).
Примеры
Основное использование:
>>> :t OtherLetter OtherLetter :: GeneralCategory
Eq пример:
>>> UppercaseLetter == UppercaseLetter True >>> UppercaseLetter == LowercaseLetter False
Ord пример:
>>> NonSpacingMark <= MathSymbol True
Enum пример:
>>> enumFromTo ModifierLetter SpacingCombiningMark [ModifierLetter,OtherLetter,NonSpacingMark,SpacingCombiningMark]
Read пример:
>>> read "DashPunctuation" :: GeneralCategory DashPunctuation >>> read "17" :: GeneralCategory *** Exception: Prelude.read: no parse
Show пример:
>>> show EnclosingMark "EnclosingMark"
Bounded пример:
>>> minBound :: GeneralCategory UppercaseLetter >>> maxBound :: GeneralCategory NotAssigned
Ix пример:
>>> import GHC.Internal.Data.Ix ( index ) >>> index (OtherLetter,Control) FinalQuote 12 >>> index (OtherLetter,Control) Format *** Exception: Error in array index
Конструкторы
| UppercaseLetter | Lu: Буква, Прописная |
| LowercaseLetter | Ll: Буква, Строчная |
| TitlecaseLetter | Lt: Буква, Заглавная |
| ModifierLetter | Lm: Буква, Модификатор |
| OtherLetter | Lo: Буква, Другая |
| NonSpacingMark | Mn: Диакритический знак, Непробельный |
| SpacingCombiningMark | Mc: Диакритический знак, Пробельный |
| EnclosingMark | Me: Диакритический знак, Охватывающий |
| DecimalNumber | Nd: Число, Десятичное |
| LetterNumber | Nl: Число, Буквенное |
| OtherNumber | No: Число, Другое |
| ConnectorPunctuation | Pc: Знак препинания, Соединительный |
| DashPunctuation | Pd: Знак препинания, Тире |
| OpenPunctuation | Ps: Знак препинания, Открывающий |
| ClosePunctuation | Pe: Знак препинания, Закрывающий |
| InitialQuote | Pi: Знак препинания, Первичная кавычка |
| FinalQuote | Pf: Знак препинания, Конечная кавычка |
| OtherPunctuation | Po: Знак препинания, Другой |
| MathSymbol | Sm: Математический символ |
| CurrencySymbol | Sc: Символ валюты |
| ModifierSymbol | Sk: Символ модификатора |
| OtherSymbol | So: Символ, Другой |
| Space | Zs: Разделитель, Пробел |
| LineSeparator | Zl: Разделитель, Строка |
| ParagraphSeparator | Zp: Разделитель, Абзац |
| Control | Cc: Другой, Управляющий |
| Format | Cf: Другой, Формат |
| Surrogate | Cs: Другой, Замещающий |
| PrivateUse | Co: Другой, Частное использование |
| NotAssigned | Cn: Другой, Не назначен |
Примеры
|
Методыfrom :: Категория символов -> Представление Категория символов x Исходный код to :: Представление Категория символов x -> Категория символов Исходный код | |||
| Ix Категория символов Исходный код | С версии: base-2.1 |
||
Определено в GHC.Internal.Unicode Методыrange :: (Категория символов, Категория символов) -> [Категория символов] Исходный код index :: (Категория символов, Категория символов) -> Категория символов -> Целое Исходный код unsafeIndex :: (Категория символов, Категория символов) -> Категория символов -> Целое Исходный код inRange :: (Категория символов, Категория символов) -> Категория символов -> Булево Исходный код rangeSize :: (Категория символов, Категория символов) -> Целое Исходный код unsafeRangeSize :: (Категория символов, Категория символов) -> Целое Исходный код | |||
| Read Категория символов Исходный код | С версии: base-2.1 |
||
Определено в GHC.Internal.Read | |||
| Show Категория символов Исходный код | С версии: base-2.1 |
||
Определено в GHC.Internal.Unicode МетодыshowsPrec :: Int -> GeneralCategory -> ShowS Исходный код show :: GeneralCategory -> Строка Исходный код showList :: [GeneralCategory] -> ShowS Исходный код | |
| Eq GeneralCategory Исходный код | С версии: base-2.1 |
Определено в GHC.Internal.Unicode Методы(==) :: GeneralCategory -> GeneralCategory -> Bool Исходный код (/=) :: GeneralCategory -> GeneralCategory -> Bool Исходный код | |
| Ord GeneralCategory Исходный код | С версии: base-2.1 |
Определено в GHC.Internal.Unicode Методыcompare :: GeneralCategory -> GeneralCategory -> Ordering Исходный код (<) :: GeneralCategory -> GeneralCategory -> Bool Исходный код (<=) :: GeneralCategory -> GeneralCategory -> Bool Исходный код (>) :: GeneralCategory -> GeneralCategory -> Bool Исходный код (>=) :: GeneralCategory -> GeneralCategory -> Bool Исходный код max :: GeneralCategory -> GeneralCategory -> GeneralCategory Исходный код min :: GeneralCategory -> GeneralCategory -> GeneralCategory Исходный код | |
| type Rep GeneralCategory Исходный код | С версии: base-4.15.0.0 |
Определено в GHC.Internal.Generics | |
type Rep GeneralCategory = D1 ('MetaData "GeneralCategory" "GHC.Internal.Unicode" "ghc-internal" 'False) ((((C1 ('MetaCons "UppercaseLetter" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LowercaseLetter" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TitlecaseLetter" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ModifierLetter" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherLetter" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NonSpacingMark" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SpacingCombiningMark" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "EnclosingMark" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DecimalNumber" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LetterNumber" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherNumber" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ConnectorPunctuation" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DashPunctuation" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "OpenPunctuation" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ClosePunctuation" 'PrefixI 'False) (U1 :: Type -> Type))))) :+: (((C1 ('MetaCons "InitialQuote" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FinalQuote" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherPunctuation" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MathSymbol" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CurrencySymbol" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ModifierSymbol" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherSymbol" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "Space" 'PrefixI 'False) ( |
U1 :: Тип -> Тип) :+: C1 ('MetaCons "Разделитель строк" 'PrefixI 'Ложь) (U1 :: Тип -> Тип)) :+: (C1 ('MetaCons "Разделитель абзацев" 'PrefixI 'Ложь) (U1 :: Тип -> Тип)) :+: C1 ('MetaCons "Управление" 'PrefixI 'Ложь) (U1 :: Тип -> Тип))) :+: ((C1 ('MetaCons "Формат" 'PrefixI 'Ложь) (U1 :: Тип -> Тип) :+: C1 ('MetaCons "Замещение" 'PrefixI 'Ложь) (U1 :: Тип -> Тип)) :+: (C1 ('MetaCons "Частное использование" 'PrefixI 'Ложь) (U1 :: Тип -> Тип) :+: C1 ('MetaCons "Не назначено" 'PrefixI 'Ложь) (U1 :: Тип -> Тип)))))) |
generalCategory :: Символ -> ОбщаяКатегория Исходный код
Общая категория символа Юникода. Это зависит от экземпляра Enum GeneralCategory, который должен оставаться в том же порядке, что и категории в стандарте Юникода.
Примеры
Базовое использование:
>>> generalCategory 'a' LowercaseLetter >>> generalCategory 'A' UppercaseLetter >>> generalCategory '0' DecimalNumber >>> generalCategory '%' OtherPunctuation >>> generalCategory '♥' OtherSymbol >>> generalCategory '\31' Control >>> generalCategory ' ' Space
Преобразование регистра
toUpper :: Символ -> Символ Исходный код
Преобразует букву в соответствующую заглавную букву, если таковая имеется. Любой другой символ возвращается без изменений.
toLower :: Символ -> Символ Исходный код
Преобразует букву в соответствующую строчную букву, если таковая имеется. Любой другой символ возвращается без изменений.
toTitle :: Символ -> Символ Исходный код
Преобразует букву в соответствующую букву заглавной формы или прописную, если таковая имеется. (Заглавная форма отличается от прописной только для небольшого числа лигатурных букв.) Любой другой символ возвращается без изменений.
Символы одной цифры
digitToInt :: Символ -> Целое Исходный код
Преобразует одиночную цифру Char в соответствующее целое число. Эта функция терпит неудачу, если ее аргумент не удовлетворяет условию isHexDigit, но распознает как прописные, так и строчные шестнадцатеричные цифры (то есть, '0'..'9', 'a'..'f', 'A'..'F').
Примеры
Символы '0' по '9' должным образом преобразуются в 0..9:
>>> map digitToInt ['0'..'9'] [0,1,2,3,4,5,6,7,8,9]
И прописные, и строчные 'A' по 'F' также преобразуются в 10..15.
>>> map digitToInt ['a'..'f'] [10,11,12,13,14,15] >>> map digitToInt ['A'..'F'] [10,11,12,13,14,15]
Любой другой символ вызывает исключение:
>>> digitToInt 'G' *** Exception: Char.digitToInt: not a digit 'G' >>> digitToInt '♥' *** Exception: Char.digitToInt: not a digit '\9829'
intToDigit :: Целое -> Символ Исходный код
Преобразует целое число в диапазоне 0..15 в соответствующий символ одиночной цифры. Данная функция терпит неудачу при других входах и генерирует строчные шестнадцатеричные цифры.
Числовые представления
ord :: Символ -> Целое Исходный код
Метод fromEnum ограничен типом Char.
chr :: Целое -> Символ Исходный код
Метод toEnum ограничен типом Char.
Строковые представления
showLitChar :: Символ -> ShowS Исходный код
Преобразует символ в строку, используя только печатные символы и соглашения о экранировании языка Haskell. Например:
showLitChar '\n' s = "\\n" ++ s
lexLitChar :: ReadS Строка Исходный код
Считывает строковое представление символа, используя соглашения о экранировании языка Haskell. Например:
lexLitChar "\\nHello" = [("\\n", "Hello")]
readLitChar :: ReadS Символ Исходный код
Считывает строковое представление символа, используя соглашения о экранировании языка Haskell, и преобразует его в символ, который он кодирует. Например:
readLitChar "\\nHello" = [('\n', "Hello")]
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Char.html