GHC.Show
| Copyright | (c) The University of Glasgow 1992-2002 |
|---|---|
| License | see libraries/base/LICENSE |
| Maintainer | cvs-ghc@haskell.org |
| Stability | internal |
| Portability | non-portable (GHC Extensions) |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
Описание
Класс Show и связанные с ним операции.
Преобразование значений в удобочитаемые 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 начиналось.
Специализированная версия showsPrec, использующая контекст приоритета ноль и возвращающая обычную String.
showList :: [a] -> ShowS Source
Метод showList предоставлен, чтобы позволить программисту указать специализированный способ отображения списков значений. Например, это используется предопределённым экземпляром Show типа Char, где значения типа String должны отображаться в двойных кавычках, а не в квадратных скобках.
Экземпляры
| Show RuntimeRep | С версии: base-4.11.0.0 |
Определено в GHC.Show МетодыshowsPrec :: Int -> RuntimeRep -> ShowS Источник show :: RuntimeRep -> String Источник showList :: [RuntimeRep] -> ShowS Источник | |
| Show VecCount | С версии: base-4.11.0.0 |
| Show VecElem | С версии: base-4.11.0.0 |
| Show CallStack | С версии: base-4.9.0.0 |
| Show SomeTypeRep | С версии: base-4.10.0.0 |
Определено в Data.Typeable.Internal МетодыshowsPrec :: Int -> SomeTypeRep -> ShowS Источник show :: SomeTypeRep -> String Источник showList :: [SomeTypeRep] -> ShowS Источник | |
| Show () | С версии: base-2.1 |
| Show TyCon | С версии: base-2.1 |
| Show Module | Since: base-4.9.0.0 |
| Show TrName | Since: base-4.9.0.0 |
| Show KindRep | |
| Show TypeLitSort | Since: base-4.11.0.0 |
Определено в GHC.Show МетодыshowsPrec :: Int -> TypeLitSort -> ShowS Source show :: TypeLitSort -> String Source showList :: [TypeLitSort] -> ShowS Source | |
| Show SomeException | Since: base-3.0 |
Определено в GHC.Exception.Type МетодыshowsPrec :: Int -> SomeException -> ShowS Source show :: SomeException -> String Source showList :: [SomeException] -> ShowS Source | |
| Show SrcLoc | Since: base-4.9.0.0 |
| Show GeneralCategory | Since: base-2.1 |
Определено в GHC.Unicode МетодыshowsPrec :: Int -> GeneralCategory -> ShowS Source show :: GeneralCategory -> String Source showList :: [GeneralCategory] -> ShowS Source | |
| Show Number | Since: base-4.6.0.0 |
| Show CUIntPtr | |
| Show CIntPtr | |
| Show CSUSeconds | |
Определено в Foreign.C.Types МетодыshowsPrec :: Int -> CSUSeconds -> ShowS Source show :: CSUSeconds -> String Source showList :: [CSUSeconds] -> ShowS Source | |
| Show CUSeconds | |
| Show CTime | |
| Show CClock | |
| Show CSigAtomic | |
Определено в Foreign.C.Types МетодыshowsPrec :: Int -> CSigAtomic -> ShowS Source show :: CSigAtomic -> String Source showList :: [CSigAtomic] -> ShowS Source | |
| Show CWchar | |
| Show Deadlock | Since: base-4.1.0.0 |
| Show BlockedIndefinitelyOnSTM | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception МетодыshowsPrec :: Int -> BlockedIndefinitelyOnSTM -> ShowS Source show :: BlockedIndefinitelyOnSTM -> String Source showList :: [BlockedIndefinitelyOnSTM] -> ShowS Source | |
| Show BlockedIndefinitelyOnMVar | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception МетодыshowsPrec :: Int -> BlockedIndefinitelyOnMVar -> ShowS Source show :: BlockedIndefinitelyOnMVar -> String Source showList :: [BlockedIndefinitelyOnMVar] -> ShowS Source | |
| Show CodingFailureMode | Since: base-4.4.0.0 |
Defined in GHC.IO.Encoding.Failure МетодыshowsPrec :: Int -> CodingFailureMode -> ShowS Source show :: CodingFailureMode -> String Source showList :: [CodingFailureMode] -> ShowS Source | |
| Show Fd | |
| Show CNfds | |
| Show CSocklen | |
Определено в Control.Exception.Base МетодыshowsPrec :: Int -> NestedAtomically -> ShowS Источник show :: NestedAtomically -> Строка Источник showList :: [NestedAtomically] -> ShowS Источник | |
| Show NonTermination | С момента: base-4.0 |
Определено в Control.Exception.Base МетодыshowsPrec :: Int -> NonTermination -> ShowS Источник show :: NonTermination -> Строка Источник showList :: [NonTermination] -> ShowS Источник | |
| Show TypeError | С момента: base-4.9.0.0 |
| Show NoMethodError | С момента: base-4.0 |
Определено в Control.Exception.Base МетодыshowsPrec :: Int -> NoMethodError -> ShowS Источник show :: NoMethodError -> Строка Источник showList :: [NoMethodError] -> ShowS Источник | |
| Show RecUpdError | С момента: base-4.0 |
Определено в Control.Exception.Base МетодыshowsPrec :: Int -> RecUpdError -> ShowS Источник show :: RecUpdError -> Строка Источник showList :: [RecUpdError] -> ShowS Источник | |
| Show RecConError | С момента: base-4.0 |
| Show StaticPtrInfo | Since: base-4.8.0.0 |
Определено в GHC.StaticPtr МетодыshowsPrec :: Int -> StaticPtrInfo -> ShowS Source show :: StaticPtrInfo -> String Source showList :: [StaticPtrInfo] -> ShowS Source | |
| Show ByteOrder | Since: base-4.11.0.0 |
| Show GCDetails | Since: base-4.10.0.0 |
| Show RTSStats | Since: base-4.10.0.0 |
| Show RTSFlags | Since: base-4.8.0.0 |
| Show ParFlags | Since: base-4.8.0.0 |
| Show TickyFlags | Since: base-4.8.0.0 |
Определено в GHC.RTS.Flags МетодыshowsPrec :: Int -> TickyFlags -> ShowS Source show :: TickyFlags -> String Source showList :: [TickyFlags] -> ShowS Source | |
| Show TraceFlags | Since: base-4.8.0.0 |
| Show p => Show (Par1 p) | С версии: base-4.7.0.0 |
| Show a => Show (NonEmpty a) | С версии: base-4.11.0.0 |
| Show a => Show (Down a) |
Этот экземпляр был бы эквивалентен выведенным экземплярам нового типа С версии: base-4.7.0.0 |
| Show a => Show (Product a) | С версии: base-2.1 |
| Show a => Show (Sum a) | С версии: base-2.1 |
| Show a => Show (Dual a) | С версии: base-2.1 |
| Show a => Show (Last a) | С версии: base-2.1 |
Определено в 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 (Преобразование a b) | С момента: base-4.7.0.0 |
Определено в Data.Type.Coercion МетодыshowsPrec :: Int -> Преобразование a b -> ShowS Исходный код show :: Преобразование a b -> Строка Исходный код showList :: [Преобразование 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 |
Определено в Data.Monoid МетодыshowsPrec :: Int -> Ap f a -> ShowS Исходный код show :: Ap f a -> Строка Исходный код showList :: [Ap f a] -> ShowS Исходный код | |
| Show a => Show (Const a b) |
Этот экземпляр был бы эквивалентен производным экземплярам типа С момента: base-4.8.0.0 |
Определено в Data.Functor.Const МетодыshowsPrec :: Int -> Const a b -> ShowS Исходный код show :: Const a b -> Строка Исходный код showList :: [Const a b] -> ShowS Исходный код | |
| 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) | С момента: base-4.9.0.0 |
| Show (f p) => Show (M1 i c f p) | С момента: base-4.7.0.0 |
| Show (f (g p)) => Show ((f :.: g) p) | Since: base-4.7.0.0 |
| (Show a, Show b, Show c, Show d, Show e) => Show (a, b, c, d, e) | Since: base-2.1 |
| (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 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) | 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 n) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n) | Since: base-2.1 |
Определено в GHC.Show МетодыshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> ShowS Исходный код show :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> String Исходный код showList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] -> ShowS Исходный код | |
| (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 |
Определено в GHC.Show МетодыshowsPrec :: Int -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> ShowS Исходный код show :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> String Исходный код showList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] -> ShowS Исходный код | |
type ShowS = String -> String Исходный код
Функции shows возвращают функцию, которая добавляет вывод String к существующему String. Это позволяет выполнять конкатенацию результатов с постоянной сложностью, используя композицию функций.
shows :: Show a => a -> ShowS Исходный код
эквивалентно showsPrec с приоритетом 0.
showChar :: Char -> ShowS Исходный код
вспомогательная функция, преобразующая Char в функцию show, которая просто добавляет символ без изменений.
showString :: String -> ShowS Исходный код
вспомогательная функция, преобразующая String в функцию show, которая просто добавляет строку без изменений.
showMultiLineString :: String -> [String] Исходный код
Как showLitString (расширять управляющие последовательности, используя соглашения Haskell), но * разбивает строку на несколько строк * оборачивает всё в двойные кавычки Пример: showMultiLineString "hellongoodbyenblah" возвращает [""hello\n\", "\goodbyen\", "\blah""]
showParen :: Bool -> ShowS -> ShowS Исходный код
вспомогательная функция, которая окружает внутреннюю функцию show скобками, когда параметр Bool имеет значение True.
showList__ :: (a -> ShowS) -> [a] -> ShowS Исходный код
showCommaSpace :: ShowS Исходный код
showSpace :: ShowS Исходный код
showLitChar :: Char -> ShowS Исходный код
Преобразует символ в строку, используя только печатные символы, используя соглашения о экранировании языка Haskell. Например:
showLitChar '\n' s = "\\n" ++ s
showLitString :: String -> ShowS Исходный код
То же, что и showLitChar, но для строк. Преобразует строку в строку, используя соглашения Haskell об экранировании непропечатываемых символов. Не добавляет двойные кавычки вокруг всей строки; вызывающая сторона должна это сделать. Основное отличие от showLitChar (кроме того, что аргумент — это строка, а не список) заключается в том, что мы должны экранировать двойные кавычки.
protectEsc :: (Char -> Bool) -> ShowS -> ShowS Исходный код
intToDigit :: Int -> Char Исходный код
Преобразует Int в диапазоне 0..15 в соответствующую однозначную цифру Char. Эта функция не работает с другими входными данными и генерирует строчные шестнадцатеричные цифры.
showSignedInt :: Int -> Int -> ShowS Исходный код
asciiTab :: [String] Исходный код
© 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-Show.html