Spec-Zone.ru › Haskell 7

Text.Show

Авторские права (c) Университет Глазго 2001
Лицензия BSD (см. файл libraries/base/LICENSE)
Поддерживающий libraries@haskell.org
Устойчивость временная
Переносимость переносимая
Безопасный 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)".

Минимальное полное определение

showsPrec | show

Методы

showsPrec Источник

Аргументы

:: Int

приоритет оператора в окружающем контексте (число от 0 до 11). Приоритет применения функции — 10.

-> a

значение, которое нужно преобразовать в String

-> ShowS

Преобразуйте значение в читаемую String.

showsPrec должно удовлетворять закону

showsPrec d x r ++ s  ==  showsPrec d x (r ++ s)

Производные экземпляры Read и Show удовлетворяют следующим условиям:

  • (x,"") является элементом (readsPrec d (showsPrec d x "")).

То есть, readsPrec анализирует строку, сгенерированную showsPrec, и возвращает значение, с которым showsPrec начиналось.

show :: a -> String Источник

Специализированная версия showsPrec, использующая контекст приоритета ноль и возвращающая обычную String.

showList :: [a] -> ShowS Источник

Метод showList предоставляет программисту возможность указать специализированный способ отображения списков значений. Например, он используется в предопределенном экземпляре Show типа Char, где значения типа String должны отображаться в двойных кавычках, а не в квадратных скобках.

Примеры

Show Bool
Show Char
Show Int
Show Int8
Show Int16
Show Int32
Show Int64
Show Integer
Show Ordering
Show Word
Show Word8
Show Word16
Show Word32
Show Word64
Show CallStack
Show TypeRep
Show ()
Show SomeException
Show Number
Show Lexeme
Show GeneralCategory
Show Отпечаток
Show TyCon
Show Ассоциативность
Show Связанность
Show Арность
Show Любой
Show Все
Show ИсключениеArith
Show ErrorCall
Show IOException
Show MaskingState
Show Dynamic
Show CUIntMax
Show CIntMax
Show CUIntPtr
Show CIntPtr
Show CSUSeconds
Show CUSeconds
Show CTime
Show CClock
Show CSigAtomic
Show CWchar
Show CSize
Show CPtrdiff
Show CDouble
Show CFloat
Show CULLong
Show CLLong
Show CULong
Show CLong
Show CUInt
Show CInt
Show CUShort
Show CShort
Show CUChar
Show CSChar
Show CChar
Show IntPtr
Show WordPtr
Show CodingProgress
Show TextEncoding
Show SeekMode
Show NewlineMode
Show Newline
Show BufferMode
Show Handle
Show IOErrorType
Show ExitCode
Show ArrayException
Show AsyncException
Show SomeAsyncException
Show AssertionFailed
Show Превышение лимита выделения памяти
Show Тупиковая ситуация
Show Блокировка на неопределённое время в STM
Show Блокировка на неопределённое время в MVar
Show Дескриптор файла
Show CRLim
Show CTcflag
Show CSpeed
Show CCc
Show CUid
Show CNlink
Show CGid
Show CSsize
Show CPid
Show COff
Show CMode
Show CIno
Show CDev
Show Режим ошибки кодирования
Show Состояние потока
Show Причина блокировки
Show Идентификатор потока
Show Вложенный атомарно
Show Непрекращение работы
Show Ошибка отсутствия метода
Show Ошибка обновления записи
Show Ошибка создания записи
Show Ошибка выбора записи
Show Ошибка сопоставления шаблонов
Show Режим ввода-вывода
Show Срок действия
Show Событие
Show Ключ дескриптора файла
Show Положение в файле
Show Статистика сборки мусора
Show Версия
Show Фиксированность
Show ConstrRep
Show DataRep
Show Constr
Show Тип данных
Show Натуральное число
Show RTSFlags
Show TickyFlags
Show Флаги отслеживания
Show DoTrace
Show Флаги профилирования
Show DoHeapProfile
Show CCFlags
Show DoCostCentres
Show Флаги отладки
Show Прочие флаги
Show Флаги конкурентности
Show Флаги сборки мусора
Show GiveGCStats
Show SomeSymbol
Show SomeNat
Show SrcLoc
Show StaticPtrInfo
Show Void
Show a => Show [a]
(Integral a, Show a) => Show (Ratio a)
Show (Ptr a)
Show (FunPtr a)
Show (U1 p)
Show p => Show (Par1 p)
Show a => Show (Maybe a)
Show a => Show (Down a)
Show a => Show (Last a)
Show a => Show (First a)
Show a => Show (Product a)
Show a => Show (Sum a)
Show a => Show (Dual a)
Show (ForeignPtr a)
Show a => Show (ZipList a)
Show a => Show (Complex a)
HasResolution a => Show (Fixed a)
Show a => Show (Identity a)

Этот экземпляр был бы эквивалентен производным экземплярам нового типа Identity если бы поле runIdentity было удалено

(Show a, Show b) => Show (Either a b)
Show (f p) => Show (Rec1 f p)
(Show a, Show b) => Show (a, b)
Show (ST s a)
Show (Proxy k s)
Show a => Show (Const a b)
Show c => Show (K1 i c p)
(Show (f p), Show (g p)) => Show ((:+:) f g p)
(Show (f p), Show (g p)) => Show ((:*:) f g p)
Show (f (g p)) => Show ((:.:) f g p)
(Show a, Show b, Show c) => Show (a, b, c)
Show ((:~:) k a b)
Show (Coercion k a b)
Show (f a) => Show (Alt k f a)
Show (f p) => Show (M1 i c f p)
(Show a, Show b, Show c, Show d) => Show (a, b, c, d)
(Show a, Show b, Show c, Show d, Show e) => Show (a, b, c, d, e)
(Show a, Show b, Show c, Show d, Show e, Show f) => Show (a, b, c, d, e, f)
(Show a, Show b, Show c, Show d, Show e, Show f, Show g) => Show (a, b, c, d, e, f, g)
(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)
(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)
(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)
(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)
(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)
(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)
(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)
(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)

shows :: Show a => a -> ShowS Source

equivalent to showsPrec with a precedence of 0.

showChar :: Char -> ShowS Source

функция-утилита, преобразующая Char в функцию показа, которая просто добавляет символ без изменений.

showString :: String -> ShowS Source

функция-утилита, преобразующая String в функцию показа, которая просто добавляет строку без изменений.

showParen :: Bool -> ShowS -> ShowS Source

функция-утилита, которая обрамляет внутреннюю функцию показа скобками, когда параметр Bool равен True.

showListWith :: (a -> ShowS) -> [a] -> ShowS Source

Отображает список (с использованием квадратных скобок и запятых), задавая функцию для отображения элементов.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Text-Show.html

Spec-Zone.ru

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