Spec-Zone.ru › Haskell 8

Data.Char

Авторские права (c) Университет Глазго 2001
Лицензия BSD-стиль (см. файл libraries/base/LICENSE)
Поддержка libraries@haskell.org
Стабильность стабильная
Переносимость переносимая
Безопасный Haskell Надёжный
Язык Haskell2010

Содержание

  • Классификация символов
    • Поддиапазоны
    • Общие категории Unicode
  • Преобразование регистра
  • Символы из одной цифры
  • Числовые представления
  • Представления строк

Описание

Тип Char и связанные операции.

data Char Источник

Тип символов Char представляет собой перечисление, значения которого соответствуют кодовым точкам Unicode (или, эквивалентно, ISO/IEC 10646) (т.е. символам; см. http://www.unicode.org/ для подробностей). Этот набор расширяет набор символов ISO 8859-1 (Latin-1) (первые 256 символов), который, в свою очередь, является расширением набора символов ASCII (первые 128 символов). Символьная константа в Haskell имеет тип Char.

Для преобразования Char в соответствующее значение Int, определённое Unicode, используйте toEnum и fromEnum из класса Enum соответственно (или, эквивалентно, ord и chr).

Примеры реализации
Подробности о реализациях
Bounded Char

Since: base-2.1

Подробности о реализации

Определено в GHC.Enum

Методы

minBound :: Char Source

maxBound :: Char Source

Enum Char

Since: base-2.1

Подробности о реализации

Определено в GHC.Enum

Методы

succ :: Char -> Char Source

pred :: Char -> Char Source

toEnum :: Int -> Char Source

fromEnum :: Char -> Int Source

enumFrom :: Char -> [Char] Source

enumFromThen :: Char -> Char -> [Char] Source

enumFromTo :: Char -> Char -> [Char] Source

enumFromThenTo :: Char -> Char -> Char -> [Char] Source

Eq Char
Подробности о реализации

Определено в GHC.Classes

Методы

(==) :: Char -> Char -> Bool Source

(/=) :: Char -> Char -> Bool Source

Data Char

Since: base-4.0.0.0

Подробности о реализации

Определено в Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Char -> c Char Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Char Source

toConstr :: Char -> Constr Source

dataTypeOf :: Char -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Char) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Char) Source

gmapT :: (forall b. Data b => b -> b) -> Char -> Char Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Source

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Char -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Char -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Char -> m Char Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Source

Ord Char
Подробности экземпляра

Определено в GHC.Classes

Методы

compare :: Char -> Char -> Ordering Исходный код

(<) :: Char -> Char -> Bool Исходный код

(<=) :: Char -> Char -> Bool Исходный код

(>) :: Char -> Char -> Bool Исходный код

(>=) :: Char -> Char -> Bool Исходный код

max :: Char -> Char -> Char Исходный код

min :: Char -> Char -> Char Исходный код

Read Char

С момента: base-2.1

Подробности экземпляра

Определено в GHC.Read

Методы

readsPrec :: Int -> ReadS Char Исходный код

readList :: ReadS [Char] Исходный код

readPrec :: ReadPrec Char Исходный код

readListPrec :: ReadPrec [Char] Исходный код

Show Char

С момента: base-2.1

Подробности экземпляра

Определено в GHC.Show

Методы

showsPrec :: Int -> Char -> ShowS Исходный код

show :: Char -> String Исходный код

showList :: [Char] -> ShowS Исходный код

Ix Char

С момента: base-2.1

Подробности экземпляра

Определено в GHC.Ix

Методы

range :: (Char, Char) -> [Char] Исходный код

index :: (Char, Char) -> Char -> Int Исходный код

unsafeIndex :: (Char, Char) -> Char -> Int Исходный код

inRange :: (Char, Char) -> Char -> Bool Исходный код

rangeSize :: (Char, Char) -> Int Исходный код

unsafeRangeSize :: (Char, Char) -> Int Исходный код

Storable Char

С момента: base-2.1

Подробности экземпляра

Определено в Foreign.Storable

Методы

sizeOf :: Символ -> Целое Исходный код

alignment :: Символ -> Целое Исходный код

peekElemOff :: Указатель Символ -> Целое -> IO Символ Исходный код

pokeElemOff :: Указатель Символ -> Целое -> Символ -> IO () Исходный код

peekByteOff :: Указатель b -> Целое -> IO Символ Исходный код

pokeByteOff :: Указатель b -> Целое -> Символ -> IO () Исходный код

peek :: Указатель Символ -> IO Символ Исходный код

poke :: Указатель Символ -> Символ -> IO () Исходный код

IsChar Символ

С тех пор как: base-2.1

Подробности экземпляра

Определено в Text.Printf

Методы

toChar :: Символ -> Символ Исходный код

fromChar :: Символ -> Символ Исходный код

PrintfArg Символ

С тех пор как: base-2.1

Подробности экземпляра

Определено в Text.Printf

Методы

formatArg :: Символ -> ФорматтерПоля Исходный код

parseFormat :: Символ -> ПарсерМодификатора Исходный код

Generic1 (URec Символ :: k -> Тип)

С тех пор как: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Generics

Связанные типы

type Rep1 (URec Символ) :: k -> Тип Исходный код

Методы

from1 :: forall (a :: k0). URec Символ a -> Rep1 (URec Символ) a Исходный код

to1 :: forall (a :: k0). Rep1 (URec Символ) a -> URec Символ a Исходный код

Foldable (UChar :: Тип -> Тип)

С тех пор как: base-4.9.0.0

Подробности экземпляра

Определено в Data.Foldable

Методы

fold :: Monoid m => UChar m -> m Исходный код

foldMap :: Monoid m => (a -> m) -> UChar a -> m Исходный код

foldMap' :: Monoid m => (a -> m) -> UChar a -> m Исходный код

foldr :: (a -> b -> b) -> b -> UChar a -> b Исходный код

foldr' :: (a -> b -> b) -> b -> UChar a -> b Исходный код

foldl :: (b -> a -> b) -> b -> UChar a -> b Исходный код

foldl' :: (b -> a -> b) -> b -> UChar a -> b Исходный код

foldr1 :: (a -> a -> a) -> UChar a -> a Исходный код

foldl1 :: (a -> a -> a) -> UChar a -> a Исходный код

toList :: UChar a -> [a] Исходный код

null :: UChar a -> Bool Исходный код

length :: UChar a -> Int Исходный код

elem :: Eq a => a -> UChar a -> Bool Исходный код

maximum :: Ord a => UChar a -> a Исходный код

minimum :: Ord a => UChar a -> a Исходный код

sum :: Num a => UChar a -> a Исходный код

product :: Num a => UChar a -> a Исходный код

Traversable (UChar :: Тип -> Тип)

С версии: base-4.9.0.0

Подробности экземпляра

Определено в Data.Traversable

Методы

traverse :: Applicative f => (a -> f b) -> UChar a -> f (UChar b) Исходный код

sequenceA :: Applicative f => UChar (f a) -> f (UChar a) Исходный код

mapM :: Monad m => (a -> m b) -> UChar a -> m (UChar b) Исходный код

sequence :: Monad m => UChar (m a) -> m (UChar a) Исходный код

Functor (URec Char :: Тип -> Тип)

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Generics

Методы

fmap :: (a -> b) -> URec Char a -> URec Char b Исходный код

(<$) :: a -> URec Char b -> URec Char a Исходный код

Eq (URec Char p)

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Generics

Методы

(==) :: URec Char p -> URec Char p -> Bool Исходный код

(/=) :: URec Char p -> URec Char p -> Bool Исходный код

Ord (URec Char p)

С версии: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Generics

Методы

compare :: URec Char p -> URec Char p -> Ordering Исходный код

(<) :: URec Char p -> URec Char p -> Bool Исходный код

(<=) :: URec Char p -> URec Char p -> Bool Исходный код

(>) :: URec Char p -> URec Char p -> Bool Исходный код

(>=) :: URec Char p -> URec Char p -> Bool Исходный код

max :: URec Char p -> URec Char p -> URec Char p Исходный код

min :: URec Char p -> URec Char p -> URec Char p Исходный код

Show (URec Char p)

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Generics

Методы

showsPrec :: Int -> URec Char p -> ShowS Исходный код

show :: URec Char p -> String Исходный код

showList :: [URec Char p] -> ShowS Исходный код

Generic (URec Char p)

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Generics

Связанные типы

type Rep (URec Char p) :: Type -> Type Исходный код

Методы

from :: URec Char p -> Rep (URec Char p) x Исходный код

to :: Rep (URec Char p) x -> URec Char p Исходный код

data URec Char (p :: k)

Используется для маркировки случаев Char#

С момента: base-4.9.0.0

Подробности экземпляра

Определено в GHC.Generics

data URec Char (p :: k) = UChar {
  • uChar# :: Char#
}
type Rep1 (URec Char :: k -> Type)
Подробности экземпляра

Определено в GHC.Generics

type Rep1 (URec Char :: k -> Type) = D1 ('MetaData "URec" "GHC.Generics" "base" 'False) (C1 ('MetaCons "UChar" 'PrefixI 'True) (S1 ('MetaSel ('Just "uChar#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UChar :: k -> Type)))
type Rep (URec Char p)
Подробности экземпляра

Определено в GHC.Generics

type Rep (URec Символ p) = D1 ('MetaData "URec" "GHC.Generics" "base" 'False) (C1 ('MetaCons "UChar" 'PrefixI 'True) (S1 ('MetaSel ('Just "uChar#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UChar :: Тип -> Тип)))

Классификация символов

Символы Юникода делятся на буквы, цифры, знаки, знаки препинания, символы, разделители (включая пробелы) и другие (включая управляющие символы).

isControl :: Символ -> Bool Исходный код

Выбирает управляющие символы, которые являются непечатаемыми символами подмножества Latin-1 в Юникоде.

isSpace :: Символ -> Bool Исходный код

Возвращает True для любого символа-пробела Юникода и управляющих символов \t, \n, \r, \f, \v.

isLower :: Символ -> Bool Исходный код

Выбирает строчные буквенные символы Юникода (буквы).

isUpper :: Символ -> Bool Исходный код

Выбирает заглавные или прописные буквенные символы Юникода (буквы). Прописные используются небольшим количеством лигатур букв, таких как односимвольное представление Lj.

isAlpha :: Символ -> Bool Исходный код

Выбирает буквенные символы Юникода (строчные, прописные и прописные буквы, а также буквы без учета регистра и модификаторные буквы). Эта функция эквивалентна isLetter.

isAlphaNum :: Символ -> Bool Исходный код

Выбирает буквенные или цифровые символы Юникода.

Обратите внимание, что цифровые знаки вне диапазона ASCII, а также цифровые символы, которые не являются цифрами, выбираются этой функцией, но не isDigit. Такие символы могут быть частью идентификаторов, но не используются принтером и читателем для представления чисел.

isPrint :: Символ -> Bool Исходный код

Выбирает печатаемые символы Юникода (буквы, цифры, знаки, знаки препинания, символы и пробелы).

isDigit :: Символ -> Bool Исходный код

Выбирает цифры ASCII, т.е. '0'..'9'.

isOctDigit :: Символ -> Bool Исходный код

Выбирает восьмеричные цифры ASCII, т.е. '0'..'7'.

isHexDigit :: Символ -> Bool Исходный код

Выбирает шестнадцатеричные цифры ASCII, т.е. '0'..'9', 'a'..'f', 'A'..'F'.

isLetter :: Символ -> Bool Исходный код

Выбирает буквенные символы Юникода (строчные, прописные и прописные буквы, а также буквы без учета регистра и модификаторные буквы). Эта функция эквивалентна isAlpha.

Эта функция возвращает True если её аргумент имеет одно из следующих GeneralCategory значений, или False в противном случае:

  • UppercaseLetter
  • LowercaseLetter
  • TitlecaseLetter
  • ModifierLetter
  • OtherLetter

Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникод. В том же документе определено, что такое и что не является "Буквой".

Примеры
Развернуть

Базовое использование:

>>> 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

isMark :: Символ -> Bool Исходный код

Выбирает символы-знаки Юникода, например, диакритики и подобное, которые объединяются с предшествующими символами.

Эта функция возвращает True если её аргумент имеет одно из следующих GeneralCategory значений, или False в противном случае:

  • NonSpacingMark
  • SpacingCombiningMark
  • EnclosingMark

Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникод. В том же документе определено, что такое и что не является "Знаком".

Примеры
Развернуть

Базовое использование:

>>> isMark 'a'
False
>>> isMark '0'
False

Знаки объединения, такие как диакритические знаки, обычно должны следовать за другим символом, прежде чем стать печатаемыми:

>>> map isMark "ò"
[False,True]

Пунктуация необязательно поддерживается:

>>> isMark '✓'
False

isNumber :: Символ -> Bool Исходный код

Выбирает цифровые символы Юникода, включая цифры из различных алфавитов, римские цифры и т.д.

Эта функция возвращает True если её аргумент имеет одно из следующих GeneralCategory значений, или False в противном случае:

  • DecimalNumber
  • LetterNumber
  • OtherNumber

Эти классы определены в Базе данных символов Юникода, которая является частью стандарта Юникод. В том же документе определено, что такое и что не является "Числом".

Примеры
Развернуть

Базовое использование:

>>> isNumber 'a'
False
>>> isNumber '%'
False
>>> isNumber '3'
True

ASCII '0' по '9' являются цифрами:

>>> and $ map isNumber ['0'..'9']
True

Римские цифры Юникода также являются "цифрами":

>>> isNumber 'Ⅸ'
True

isPunctuation :: Символ -> Bool Исходный код

Выбирает символы пунктуации Юникода, включая различные виды соединителей, скобок и кавычек.

Эта функция возвращает True если её аргумент имеет одно из следующих GeneralCategory значений, или False в противном случае:

  • ConnectorPunctuation
  • DashPunctuation
  • OpenPunctuation
  • ClosePunctuation
  • InitialQuote
  • FinalQuote
  • OtherPunctuation

Эти классы определены в Базе данных символов Юникода, являющейся частью стандарта Юникод. Тот же документ определяет, что является, а что нет "Пунктуацией".

Примеры
Развернуть

Базовое использование:

>>> isPunctuation 'a'
False
>>> isPunctuation '7'
False
>>> isPunctuation '♥'
False
>>> isPunctuation '"'
True
>>> isPunctuation '?'
True
>>> isPunctuation '—'
True

isSymbol :: Char -> Bool Исходный код

Выбирает символы Юникода, включая математические и валютные символы.

Эта функция возвращает True если её аргумент имеет один из следующих GeneralCategoryов, или False в противном случае:

  • MathSymbol
  • CurrencySymbol
  • ModifierSymbol
  • OtherSymbol

Эти классы определены в Базе данных символов Юникода, являющейся частью стандарта Юникод. Тот же документ определяет, что является, а что нет "Символом".

Примеры
Развернуть

Базовое использование:

>>> isSymbol 'a'
False
>>> isSymbol '6'
False
>>> isSymbol '='
True

Определение "математического символа" может быть немного неинтуитивным в зависимости от вашего опыта:

>>> isSymbol '+'
True
>>> isSymbol '-'
False

isSeparator :: Char -> Bool Исходный код

Выбирает разделительные и пробельные символы Юникода.

Эта функция возвращает True если её аргумент имеет один из следующих GeneralCategoryов, или False в противном случае:

  • Space
  • LineSeparator
  • ParagraphSeparator

Эти классы определены в Базе данных символов Юникода, являющейся частью стандарта Юникод. Тот же документ определяет, что является, а что нет "Разделителем".

Примеры
Развернуть

Базовое использование:

>>> isSeparator 'a'
False
>>> isSeparator '6'
False
>>> isSeparator ' '
True

Предупреждение: символы новой строки и табуляции не считаются разделителями.

>>> isSeparator '\n'
False
>>> isSeparator '\t'
False

Но некоторые более экзотические символы являются (например, &nbsp; HTML):

>>> isSeparator '\160'
True

Поддиапазоны

isAscii :: Char -> Bool Исходный код

Выбирает первые 128 символов набора символов Юникода, соответствующие набору символов ASCII.

isLatin1 :: Char -> Bool Исходный код

Выбирает первые 256 символов набора символов Юникода, соответствующие набору символов ISO 8859-1 (Latin-1).

isAsciiUpper :: Char -> Bool Исходный код

Выбирает заглавные буквы ASCII, т.е. символы, удовлетворяющие как isAscii, так и isUpper.

isAsciiLower :: Char -> Bool Исходный код

Выбирает строчные буквы ASCII, т.е. символы, удовлетворяющие как isAscii, так и isLower.

Общие категории Юникода

data GeneralCategory Исходный код

Общие категории Юникода (столбец 2 таблицы UnicodeData) в порядке, указанном в стандарте Юникод (в частности, в Базе данных символов Юникода).

Примеры
Развернуть

Базовое использование:

>>> :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: Специальный, Не назначен

Инстансы
END_OF_DOCUMENT_MARKER
Подробности экземпляров
Bounded GeneralCategory

Since: base-2.1

Подробности экземпляра

Определено в GHC.Unicode

Методы

minBound :: GeneralCategory Исходный код

maxBound :: GeneralCategory Исходный код

Enum GeneralCategory

Since: base-2.1

Подробности экземпляра

Определено в GHC.Unicode

Методы

succ :: GeneralCategory -> GeneralCategory Исходный код

pred :: GeneralCategory -> GeneralCategory Исходный код

toEnum :: Int -> GeneralCategory Исходный код

fromEnum :: GeneralCategory -> Int Исходный код

enumFrom :: GeneralCategory -> [GeneralCategory] Исходный код

enumFromThen :: GeneralCategory -> GeneralCategory -> [GeneralCategory] Исходный код

enumFromTo :: GeneralCategory -> GeneralCategory -> [GeneralCategory] Исходный код

enumFromThenTo :: GeneralCategory -> GeneralCategory -> GeneralCategory -> [GeneralCategory] Исходный код

Eq GeneralCategory

Since: base-2.1

Подробности экземпляра

Определено в GHC.Unicode

Методы

(==) :: GeneralCategory -> GeneralCategory -> Bool Исходный код

(/=) :: GeneralCategory -> GeneralCategory -> Bool Исходный код

Ord GeneralCategory

Since: base-2.1

Подробности экземпляра

Определено в GHC.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 Исходный код

Read GeneralCategory

Since: base-2.1

Подробности экземпляра

Определено в GHC.Read

Методы

readsPrec :: Int -> ReadS GeneralCategory Исходный код

readList :: ReadS [GeneralCategory] Исходный код

readPrec :: ReadPrec GeneralCategory Исходный код

readListPrec :: ReadPrec [GeneralCategory] Исходный код

Show GeneralCategory

Since: base-2.1

Подробности экземпляра

Определено в GHC.Unicode

Методы

showsPrec :: Int -> GeneralCategory -> ShowS Исходный код

show :: GeneralCategory -> Строка Исходный код

showList :: [GeneralCategory] -> ShowS Исходный код

Ix GeneralCategory

С момента: base-2.1

Подробности экземпляра

Определено в GHC.Unicode

Методы

range :: (GeneralCategory, GeneralCategory) -> [GeneralCategory] Исходный код

index :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int Исходный код

unsafeIndex :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int Исходный код

inRange :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Булево Исходный код

rangeSize :: (GeneralCategory, GeneralCategory) -> Int Исходный код

unsafeRangeSize :: (GeneralCategory, GeneralCategory) -> Int Исходный код

generalCategory :: Символ -> 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/8.10.2/docs/html/libraries/base-4.14.1.0/Data-Char.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API