Числовые типы
| Авторские права | (c) Университет Глазго, 2002 |
|---|---|
| Лицензия | в стиле BSD (см. файл libraries/base/LICENSE) |
| Сопровождающий | libraries@haskell.org |
| Стабильность | предварительная |
| Переносимость | переносимый |
| Безопасный Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
Разные вспомогательные функции, главным образом для чтения и вывода значений типа RealFloat.
Вывод
Аргументы
| :: Real a | |
| => (a -> ShowS) | функция, которая может выводить значения без знака |
| -> Int | приоритет окружающего контекста |
| -> a | выводимое значение |
| -> ShowS |
Преобразует значение Real, которое может быть отрицательным, в строку.
showIntAtBase :: Integral a => a -> (Int -> Char) -> a -> ShowS Источник
Выводит неотрицательное число Integral в системе счисления, заданной первым аргументом, используя представление символами, заданное вторым аргументом.
showInt :: Integral a => a -> ShowS Источник
Выводит неотрицательные числа Integral в десятичной системе счисления.
showBin :: Integral a => a -> ShowS Источник
Выводит неотрицательные числа Integral в двоичной системе счисления.
showHex :: Integral a => a -> ShowS Источник
Выводит неотрицательные числа Integral в шестнадцатеричной системе счисления.
showOct :: Integral a => a -> ShowS Источник
Выводит неотрицательные числа Integral в восьмеричной системе счисления.
showEFloat :: RealFloat a => Maybe Int -> a -> ShowS Источник
Выводит значение RealFloat со знаком в научной (экспоненциальной) нотации (например, 2.45e2, 1.5e-3).
При вызове showEFloat digs val, если digs равно Nothing, значение выводится с полной точностью; если digs равно Just d, выводится не более d цифр после десятичной точки.
showFFloat :: RealFloat a => Maybe Int -> a -> ShowS Источник
Выводит значение RealFloat со знаком в стандартной десятичной нотации (например, 245000, 0.0015).
При вызове showFFloat digs val, если digs равно Nothing, значение выводится с полной точностью; если digs равно Just d, выводится не более d цифр после десятичной точки.
showGFloat :: RealFloat a => Maybe Int -> a -> ShowS Источник
Выводит значение RealFloat со знаком в стандартной десятичной нотации, если абсолютное значение аргумента находится между 0.1 и 9,999,999, и в научной нотации в противном случае.
При вызове showGFloat digs val, если digs равно Nothing, значение выводится с полной точностью; если digs равно Just d, выводится не более d цифр после десятичной точки.
showFFloatAlt :: RealFloat a => Maybe Int -> a -> ShowS Источник
Выводит значение RealFloat со знаком в стандартной десятичной нотации (например, 245000, 0.0015).
Работает как showFFloat, но десятичная точка гарантированно присутствует, даже если она не нужна.
Начиная с: base-4.7.0.0
showGFloatAlt :: RealFloat a => Maybe Int -> a -> ShowS Источник
Выводит значение RealFloat со знаком в стандартной десятичной нотации, если абсолютное значение аргумента находится между 0.1 и 9,999,999, и в научной нотации в противном случае.
Работает как showFFloat, но десятичная точка гарантированно присутствует, даже если она не нужна.
Начиная с: base-4.7.0.0
showFloat :: RealFloat a => a -> ShowS Источник
Выводит значение RealFloat со знаком с полной точностью в стандартной десятичной нотации, если абсолютное значение аргумента находится между 0.1 и 9,999,999, и в научной нотации в противном случае.
showHFloat :: RealFloat a => a -> ShowS Источник
Выводит число с плавающей точкой в шестнадцатеричном формате, подобно спецификатору %a в функции printf языка C.
>>> showHFloat (212.21 :: Double) "" "0x1.a86b851eb851fp7" >>> showHFloat (-12.76 :: Float) "" "-0x1.9851ecp3" >>> showHFloat (-0 :: Double) "" "-0x0p+0"
Начиная с: base-4.11.0.0
floatToDigits :: RealFloat a => Integer -> a -> ([Int], Int) Источник
floatToDigits принимает основание системы счисления и неотрицательное число RealFloat, возвращая список цифр и показатель степени. В частности, если x>=0 и
floatToDigits base x = ([d1,d2,...,dn], e)
то
n >= 1
x = 0.d1d2...dn * (base**e)
0 <= di <= base-1
Чтение
Примечание: readInt является «двойственной» функцией по отношению к showIntAtBase, а readDec — «двойственной» по отношению к showInt. Несогласованность в именовании — историческая случайность.
readSigned :: Real a => ReadS a -> ReadS a Источник
Считывает значение Real со знаком, используя функцию чтения значения без знака.
Аргументы
| :: Num a | |
| => a | основание системы счисления |
| -> (Char -> Bool) | предикат, определяющий допустимые цифры в этой системе счисления |
| -> (Char -> Int) | функция, преобразующая символ допустимой цифры в |
| -> ReadS a |
Считывает значение целого числа без знака в произвольной системе счисления.
readBin :: (Eq a, Num a) => ReadS a Источник
Считывает число без знака в двоичной записи.
>>> readBin "10011" [(19,"")]
readDec :: (Eq a, Num a) => ReadS a Источник
Считывает число без знака в десятичной записи.
>>> readDec "0644" [(644,"")]
readOct :: (Eq a, Num a) => ReadS a Источник
Считывает число без знака в восьмеричной записи.
>>> readOct "0644" [(420,"")]
readHex :: (Eq a, Num a) => ReadS a Источник
Считывает число без знака в шестнадцатеричной записи. Допускаются как прописные, так и строчные буквы.
>>> readHex "deadbeef" [(3735928559,"")]
readFloat :: RealFrac a => ReadS a Источник
Считывает значение RealFrac без знака, представленное в десятичной научной нотации.
Обратите внимание, что время выполнения этой функции линейно зависит от величины входных данных, которая может расти экспоненциально относительно размера ввода (например, "1e100000000" — очень большое число, несмотря на очень короткую текстовую запись). Поэтому при использовании этой функции следует избегать обработки недоверенных данных. Для разбора значений с плавающей точкой (например, Float) рекомендуется вместо неё использовать read, у которой нет этой проблемы.
lexDigits :: ReadS String Источник
Считывает непустую строку десятичных цифр.
Разное
fromRat :: RealFloat a => Rational -> a Источник
Преобразует значение Rational в любой тип класса RealFloat.
class Fractional a => Floating a where Источник
Тригонометрические и гиперболические функции, а также связанные с ними функции.
В отчёте Haskell не определены законы для Floating. Однако обычно предполагается, что (+), (*) и exp задают экспоненциальное поле и обладают следующими свойствами:
-
exp (a + b)=exp a * exp b -
exp (fromInteger 0)=fromInteger 1
Минимальное полное определение
pi, exp, log, sin, cos, asin, acos, atan, sinh, cosh, asinh, acosh, atanh
Методы
(**) :: a -> a -> a infixr 8 Источник
logBase :: a -> a -> a Источник
log1p x вычисляет log (1 + x), но, если возможно, обеспечивает более точные результаты для малых (по абсолютной величине) значений x.
Начиная с: base-4.9.0.0
expm1 x вычисляет exp x - 1, но, если возможно, обеспечивает более точные результаты для малых (по абсолютной величине) значений x.
Начиная с: base-4.9.0.0
log1pexp x вычисляет log (1 + exp x), но, если возможно, обеспечивает более точные результаты.
Примеры:
- если
x— большое отрицательное число,log (1 + exp x)будет неточным по причинам, указанным вlog1p. - если
exp xблизко к-1,log (1 + exp x)будет неточным по причинам, указанным вexpm1.
Начиная с: base-4.9.0.0
log1mexp x вычисляет log (1 - exp x), но, если возможно, обеспечивает более точные результаты.
Примеры:
- если
x— большое отрицательное число,log (1 - exp x)будет неточным по причинам, указанным вlog1p. - если
exp xблизко к1,log (1 - exp x)будет неточным по причинам, указанным вexpm1.
Начиная с: base-4.9.0.0
Экземпляры
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.14.1/docs/libraries/base-4.22.0.0-66f8/Numeric.html