GHC.Unicode
| Авторские права | (c) Университет Глазго 2003 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддерживающий | cvs-ghc@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая (расширения GHC) |
| Safe Haskell | Достоверный |
| Язык | Haskell2010 |
Описание
Реализации предикатных функций для символов (isLower, isUpper и т.д.) и преобразований (toUpper, toLower). Реализация использует libunicode на Unix-системах, если она доступна.
Категории Unicode General (столбец 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 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: Символ без присвоения |
Примеры использования
| Show GeneralCategory | Since: base-2.1 |
Определено в GHC.Unicode МетодыshowsPrec :: Int -> GeneralCategory -> ShowS Исходный код show :: GeneralCategory -> String Исходный код showList :: [GeneralCategory] -> ShowS Исходный код | |
| Ix GeneralCategory | Since: base-2.1 |
Определено в GHC.Unicode Методыrange :: (GeneralCategory, GeneralCategory) -> [GeneralCategory] Исходный код index :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int Исходный код unsafeIndex :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int Исходный код inRange :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Bool Исходный код rangeSize :: (GeneralCategory, GeneralCategory) -> Int Исходный код unsafeRangeSize :: (GeneralCategory, GeneralCategory) -> Int Исходный код | |
generalCategory :: Char -> GeneralCategory Исходный код
Общая категория символа Юникода. Это зависит от экземпляра Enum GeneralCategory, который должен оставаться в том же порядке, что и категории в стандарте Юникода.
Примеры
Базовое использование:
>>> generalCategory 'a' LowercaseLetter >>> generalCategory 'A' UppercaseLetter >>> generalCategory '0' DecimalNumber >>> generalCategory '%' OtherPunctuation >>> generalCategory '♥' OtherSymbol >>> generalCategory '\31' Control >>> generalCategory ' ' Space
isAscii :: Char -> Bool Исходный код
Выбирает первые 128 символов набора символов Юникода, соответствующего набору символов ASCII.
isLatin1 :: Char -> Bool Исходный код
Выбирает первые 256 символов набора символов Юникода, соответствующего набору символов ISO 8859-1 (Latin-1).
isControl :: Char -> Bool Исходный код
Выбирает управляющие символы, которые являются непечатаемыми символами подмножества Latin-1 Юникода.
isAsciiUpper :: Char -> Bool Исходный код
Выбирает заглавные буквы ASCII, т.е. символы, удовлетворяющие как isAscii, так и isUpper.
isAsciiLower :: Char -> Bool Исходный код
Выбирает строчные буквы ASCII, т.е. символы, удовлетворяющие как isAscii, так и isLower.
isPrint :: Char -> Bool Исходный код
Выбирает печатаемые символы Юникода (буквы, цифры, знаки, знаки препинания, символы и пробелы).
isSpace :: Char -> Bool Исходный код
Возвращает значение True для любого символа пробела Юникода, и управляющие символы \t, \n, \r, \f, \v.
isUpper :: Char -> Bool Исходный код
Выбирает заглавные или строчные буквенные символы Юникода (буквы). Строчные буквы используются небольшим количеством лигатур букв, таких как односимвольная форма Lj.
isLower :: Char -> Bool Исходный код
Выбирает строчные буквенные символы Юникода (буквы).
isAlpha :: Char -> Bool Исходный код
Выбирает буквенные символы Юникода (строчные, заглавные и прописные буквы, а также буквы без учета регистра и модификаторные буквы). Эта функция эквивалентна isLetter.
isDigit :: Char -> Bool Исходный код
Выбирает цифры ASCII, т.е. '0'..'9'.
isOctDigit :: Char -> Bool Исходный код
Выбирает восьмеричные цифры ASCII, т.е. '0'..'7'.
isHexDigit :: Char -> Bool Исходный код
Выбирает шестнадцатеричные цифры ASCII, т.е. '0'..'9', 'a'..'f', 'A'..'F'.
isAlphaNum :: Char -> Bool Source
Выбирает буквенно-цифровые символы Юникода.
Обратите внимание, что числовые цифры за пределами диапазона ASCII, а также числовые символы, которые не являются цифрами, выбираются этой функцией, но не isDigit. Такие символы могут быть частью идентификаторов, но не используются принтером и читателем для представления чисел.
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
toUpper :: Char -> Char Source
Преобразует букву в соответствующую заглавную букву, если она есть. Любой другой символ возвращается без изменений.
toLower :: Char -> Char Source
Преобразует букву в соответствующую строчную букву, если она есть. Любой другой символ возвращается без изменений.
toTitle :: Char -> Char Source
Преобразует букву в соответствующую заглавную или прописную букву, если она есть. (Заглавная буква отличается от прописной только для небольшого числа лигатурных букв.) Любой другой символ возвращается без изменений.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/GHC-Unicode.html