Text.Show
| Авторские права | (c) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Стабильность | предварительная |
| Переносимость | переносимый |
| Safe Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
Преобразование значений в удобочитаемые строки: класс Show и связанные функции.
тип ShowS = String -> String Исходный код
Функции shows возвращают функцию, которая добавляет результат String впереди существующей String. Это позволяет конкатенировать результаты с постоянной сложностью, используя композицию функций.
класс Show a где Исходный код
Преобразование значений в удобочитаемые String.
Производные экземпляры Show имеют следующие свойства, которые совместимы с производными экземплярами Read:
- Результат
show— это синтаксически правильное выражение Haskell, содержащее только константы, учитывая директивы фиктивности, действующие в момент объявления типа. Оно содержит только имена конструкторов, определённых в типе данных, скобки и пробелы. При использовании полей меченых конструкторов используются также фигурные скобки, запятые, имена полей и знаки равенства. - Если конструктор определён как инфиксный оператор, то
showsPrecбудет генерировать инфиксные применения конструктора. - представление будет заключено в скобки, если приоритет конструктора верхнего уровня в
xменьшеd(ассоциативность игнорируется). Таким образом, еслиdэто0, то результат никогда не окружён скобками; еслиdэто11, он всегда окружён скобками, если это не атомное выражение. - Если конструктор определён с использованием синтаксиса записи, то
showбудет генерировать форму с синтаксисом записи, с полями в том же порядке, что и в оригинальном объявлении.
Например, заданы объявления
infixr 5 :^: data Tree a = Leaf a | Tree a :^: Tree a
производный экземпляр Show эквивалентен
instance (Show a) => Show (Tree a) where
showsPrec d (Leaf m) = showParen (d > app_prec) $
showString "Leaf " . showsPrec (app_prec+1) m
where app_prec = 10
showsPrec d (u :^: v) = showParen (d > up_prec) $
showsPrec (up_prec+1) u .
showString " :^: " .
showsPrec (up_prec+1) v
where up_prec = 5
Обратите внимание, что правоассоциативность :^: игнорируется. Например,
-
show (Leaf 1 :^: Leaf 2 :^: Leaf 3)генерирует строку"Leaf 1 :^: (Leaf 2 :^: Leaf 3)".
Методы
Аргументы
| :: Int | приоритет оператора в окружающем контексте (число от |
| -> a | значение, подлежащее преобразованию в |
| -> ShowS |
Преобразовать значение в удобочитаемое String.
showsPrec должно удовлетворять закону
showsPrec d x r ++ s == showsPrec d x (r ++ s)
Производные экземпляры Read и Show удовлетворяют следующему:
То есть readsPrec парсит строку, сгенерированную showsPrec, и возвращает значение, с которым начиналась showsPrec.
show :: a -> String Исходный код
Специализированный вариант showsPrec, использующий контекст приоритета ноль и возвращающий обычную String.
showList :: [a] -> ShowS Исходный код
Метод showList предоставляется, чтобы программист мог дать специализированный способ отображения списков значений. Например, это используется предопределённым экземпляром Show типа Char, где значения типа String должны отображаться в двойных кавычках, а не в квадратных скобках.
| Show Word64 | Since: base-2.1 |
| Show RuntimeRep | Since: base-4.11.0.0 |
Определено в GHC.Show МетодыshowsPrec :: Int -> RuntimeRep -> ShowS Source show :: RuntimeRep -> String Source showList :: [RuntimeRep] -> ShowS Source | |
| Show VecCount | Since: base-4.11.0.0 |
| Show VecElem | Since: base-4.11.0.0 |
| Show CallStack | Since: base-4.9.0.0 |
| Show SomeTypeRep | Since: base-4.10.0.0 |
Определено в Data.Typeable.Internal МетодыshowsPrec :: Int -> SomeTypeRep -> ShowS Source show :: SomeTypeRep -> String Source showList :: [SomeTypeRep] -> ShowS Source | |
| Show () | Since: base-2.1 |
| Show TyCon | Since: base-2.1 |
Определено в GHC.Unicode МетодыshowsPrec :: Int -> GeneralCategory -> ShowS Источник show :: GeneralCategory -> Строка Источник showList :: [GeneralCategory] -> ShowS Источник | |
| Show Число | С момента: base-4.6.0.0 |
| Show Лексема | С момента: base-2.1 |
| Show Отпечаток | С момента: base-4.7.0.0 |
| Show РежимIO | С момента: base-4.2.0.0 |
| Show Указатель | |
| Show WordPtr | |
| Show CUIntMax | |
Определено в GHC.Generics МетодыshowsPrec :: Int -> SourceStrictness -> ShowS Source show :: SourceStrictness -> String Source showList :: [SourceStrictness] -> ShowS Source | |
| Show SourceUnpackedness | Since: base-4.9.0.0 |
Определено в GHC.Generics МетодыshowsPrec :: Int -> SourceUnpackedness -> ShowS Source show :: SourceUnpackedness -> String Source showList :: [SourceUnpackedness] -> ShowS Source | |
| Show Associativity | Since: base-4.6.0.0 |
Определено в GHC.Generics МетодыshowsPrec :: Int -> Associativity -> ShowS Source show :: Associativity -> String Source showList :: [Associativity] -> ShowS Source | |
| Show Fixity | Since: base-4.6.0.0 |
| Show Any | Since: base-2.1 |
| Show All | Since: base-2.1 |
| Show ArithException | Since: base-4.0.0.0 |
Определено в GHC.Exception.Type МетодыshowsPrec :: Int -> ArithException -> ShowS Source show :: ArithException -> String Source showList :: [ArithException] -> ShowS Source | |
| Show ErrorCall | Since: base-4.0.0.0 |
| Show CIno | |
| Show CDev | |
| Show Lifetime | Since: base-4.8.1.0 |
| Show Event | Since: base-4.4.0.0 |
| Show Dynamic | Since: base-2.1 |
| Show ThreadStatus | Since: base-4.3.0.0 |
Определено в GHC.Conc.Sync Краткое описание методовshowsPrec :: Int -> ThreadStatus -> ShowS Source show :: ThreadStatus -> String Source showList :: [ThreadStatus] -> ShowS Source | |
| Show BlockReason | Since: base-4.3.0.0 |
Определено в GHC.Conc.Sync Краткое описание методовshowsPrec :: Int -> BlockReason -> ShowS Source show :: BlockReason -> String Source showList :: [BlockReason] -> ShowS Source | |
| Show ThreadId | Since: base-4.2.0.0 |
| Show NestedAtomically | Since: base-4.0 |
Определено в Control.Exception.Base Краткое описание методовshowsPrec :: Int -> NestedAtomically -> ShowS Source show :: NestedAtomically -> String Source showList :: [NestedAtomically] -> ShowS Source | |
| Show NonTermination | Since: base-4.0 |
Определено в Control.Exception.Base Краткое описание методовshowsPrec :: Int -> NonTermination -> ShowS Source show :: NonTermination -> String Source showList :: [NonTermination] -> ShowS Source | |
| Show TypeError | Since: base-4.9.0.0 |
| Show NoMethodError | Since: base-4.0 |
Определено в Control.Exception.Base Краткое описание методовshowsPrec :: Int -> NoMethodError -> ShowS Source show :: NoMethodError -> String Source showList :: [NoMethodError] -> ShowS Source | |
| Show RecUpdError | Since: base-4.0 |
| Show a => Show (Ratio a) | Since: base-2.0.1 |
| Show (Ptr a) | Since: base-2.1 |
| Show (FunPtr a) | Since: base-2.1 |
| Show p => Show (Par1 p) | Since: base-4.7.0.0 |
| Show a => Show (NonEmpty a) | Since: base-4.11.0.0 |
| Show a => Show (Down a) |
Этот экземпляр был бы эквивалентен производным экземплярам Since: base-4.7.0.0 |
| Show a => Show (Product a) | Since: base-2.1 |
| Show a => Show (Sum a) | Since: base-2.1 |
| Show m => Show (WrappedMonoid m) | Since: base-4.9.0.0 |
Определено в Data.Semigroup МетодыshowsPrec :: Int -> WrappedMonoid m -> ShowS Source show :: WrappedMonoid m -> String Source showList :: [WrappedMonoid m] -> ShowS Source | |
| Show a => Show (Last a) | Since: base-4.9.0.0 |
| Show a => Show (First a) | Since: base-4.9.0.0 |
| Show a => Show (Max a) | Since: base-4.9.0.0 |
| Show a => Show (Min a) | Since: base-4.9.0.0 |
| Show a => Show (Complex a) | Since: base-2.1 |
| Show (a -> b) | Since: base-2.1 |
| Show (Proxy s) | С версии: base-4.7.0.0 |
| (Show a, Show b) => Show (Arg a b) | С версии: base-4.9.0.0 |
| HasResolution a => Show (Fixed a) | С версии: base-2.1 |
| Show (f p) => Show (Rec1 f p) | С версии: base-4.7.0.0 |
| Show (URec Word p) | С версии: base-4.9.0.0 |
| Show (URec Int p) | С версии: base-4.9.0.0 |
| Show (URec Float p) | |
Определено в GHC.Generics | |
| Show (URec Double p) | С момента: base-4.9.0.0 |
Определено в GHC.Generics | |
| Show (URec Символ p) | С момента: base-4.9.0.0 |
Определено в GHC.Generics | |
| (Show a, Show b, Show c) => Show (a, b, c) | С момента: base-2.1 |
Определено в GHC.Show МетодыshowsPrec :: Int -> (a, b, c) -> ShowS Исходный код show :: (a, b, c) -> Строка Исходный код showList :: [(a, b, c)] -> ShowS Исходный код | |
| Show (a :~: b) | С момента: base-4.7.0.0 |
Определено в Data.Type.Equality МетодыshowsPrec :: Int -> (a :~: b) -> ShowS Исходный код show :: (a :~: b) -> Строка Исходный код showList :: [a :~: b] -> ShowS Исходный код | |
| Show (Coercion a b) | С момента: base-4.7.0.0 |
Определено в Data.Type.Coercion МетодыshowsPrec :: Int -> Coercion a b -> ShowS Исходный код show :: Coercion a b -> Строка Исходный код showList :: [Coercion a b] -> ShowS Исходный код | |
| Show (f a) => Show (Alt f a) | С момента: base-4.8.0.0 |
Определено в Data.Semigroup.Internal МетодыshowsPrec :: Int -> Alt f a -> ShowS Исходный код show :: Alt f a -> Строка Исходный код showList :: [Alt f a] -> ShowS Исходный код | |
| Show (f a) => Show (Ap f a) | С момента: base-4.12.0.0 |
| Show a => Show (Const a b) |
Этот экземпляр был бы эквивалентен производным экземплярам С версии: base-4.8.0.0 |
| Show c => Show (K1 i c p) | С версии: base-4.7.0.0 |
| (Show (f p), Show (g p)) => Show ((f :+: g) p) | С версии: base-4.7.0.0 |
| (Show (f p), Show (g p)) => Show ((f :*: g) p) | С версии: base-4.7.0.0 |
| (Show a, Show b, Show c, Show d) => Show (a, b, c, d) | С версии: base-2.1 |
| Show (a :~~: b) | С версии: base-4.10.0.0 |
| (Show1 f, Show1 g, Show a) => Show (Sum f g a) | С версии: base-4.9.0.0 |
| (Show1 f, Show1 g, Show a) => Show (Product f g a) | Since: base-4.9.0.0 |
| Show (f p) => Show (M1 i c f p) | Since: base-4.7.0.0 |
| Show (f (g p)) => Show ((f :.: g) p) | Since: base-4.7.0.0 |
| (Show1 f, Show1 g, Show a) => Show (Compose f g a) | Since: base-4.9.0.0 |
| (Show a, Show b, Show c, Show d, Show e) => Show (a, b, c, d, e) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f) => Show (a, b, c, d, e, f) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g) => Show (a, b, c, d, e, f, g) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h) => Show (a, b, c, d, e, f, g, h) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i) => Show (a, b, c, d, e, f, g, h, i) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j) => Show (a, b, c, d, e, f, g, h, i, j) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k) => Show (a, b, c, d, e, f, g, h, i, j, k) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l) => Show (a, b, c, d, e, f, g, h, i, j, k, l) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m) | С момента: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m, Show n) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n) | С момента: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m, Show n, Show o) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) | С момента: base-2.1 |
shows :: Show a => a -> ShowS Источник
эквивалентно showsPrec с приоритетом 0.
showChar :: Char -> ShowS Источник
вспомогательная функция, преобразующая Char в функцию show, которая просто добавляет символ без изменений.
showString :: String -> ShowS Источник
вспомогательная функция, преобразующая String в функцию show, которая просто добавляет строку без изменений.
showParen :: Bool -> ShowS -> ShowS Источник
вспомогательная функция, которая окружает внутреннюю функцию show скобками, когда параметр Bool равен True.
showListWith :: (a -> ShowS) -> [a] -> ShowS Источник
Вывод списка (в квадратных скобках и с запятыми), учитывая функцию для вывода элементов.
© 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/Text-Show.html