GHC.Real
| Авторские права | (c) Университет Глазго 1994-2002 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддержка | ghc-devs@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимый (Расширения GHC) |
| Safe Haskell | Безопасный |
| Язык | Haskell2010 |
Классы
class (Num a, Ord a) => Real a where Источник
Действительные числа.
Отчет Haskell не определяет законов для Real, однако экземпляры Real обычно ожидаются, чтобы придерживаться следующего закона:
- Согласованность с
fromRational - если тип также реализует
Fractional, тоfromRationalявляется левым обратным элементом дляtoRational, т.е.fromRational (toRational i) = i
Закон не выполняется для Float, Double, CFloat, CDouble, и т.д., потому что эти типы содержат бесконечные значения, которые не могут быть обработаны через Rational.
Методы
toRational :: a -> Rational Источник
Рациональное эквивалент его действительного аргумента с полной точностью.
Экземпляры
| Real CId Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: CId -> Rational Source | |
| Real CIno Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: CIno -> Rational Source | |
| Real CKey Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: CKey -> Rational Source | |
| Real CMode Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: CMode -> Rational Source | |
| Real CNfds Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: CNfds -> Rational Source | |
| Real CNlink Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: CNlink -> Rational Source | |
| Real COff Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: COff -> Rational Source | |
| Real CPid Source | |
Определено в GHC.Internal.System.Posix.Types МетодыtoRational :: CPid -> Rational Source | |
| Real CRLim Source | |
Определено в GHC.Internal.Data.Functor.Const МетодыtoRational :: Const a b -> Рациональное Исходный код | |
| Вещественный (f (g a)) => Вещественный (Compose f g a) Исходный код | С момента: base-4.19.0.0 |
Определено в Data.Functor.Compose МетодыtoRational :: Compose f g a -> Рациональное Исходный код | |
class (Вещественный a, Enum a) => Целочисленный a where Исходный код
Целочисленные числа, поддерживающие целочисленное деление.
Отчёт Haskell не определяет законов для Integral. Однако Integral экземпляры обычно ожидается определять евклидову область и иметь следующие свойства для пар div/mod и quot/rem, учитывая подходящие евклидовы функции f и g:
-
x=y * quot x y + rem x yсrem x y=fromInteger 0илиg (rem x y)<g y -
x=y * div x y + mod x yсmod x y=fromInteger 0илиf (mod x y)<f y
Пример подходящей евклидовой функции для экземпляра Integer — abs.
Кроме того, toInteger должно быть полным, а fromInteger должно быть левым обратным для него, то есть fromInteger (toInteger i) = i.
Методы
quot :: a -> a -> a infixl 7 Исходный код
Целочисленное деление, усеченное к нулю.
ПРЕДУПРЕЖДЕНИЕ: Эта функция частична (потому что она выбрасывает исключение, когда 0 передаётся в качестве делителя) для всех целочисленных типов в base.
rem :: a -> a -> a infixl 7 Исходный код
Целочисленный остаток, удовлетворяющий
(x `quot` y)*y + (x `rem` y) == x
ПРЕДУПРЕЖДЕНИЕ: Эта функция частична (потому что она выбрасывает исключение, когда 0 передаётся в качестве делителя) для всех целочисленных типов в base.
div :: a -> a -> a infixl 7 Исходный код
Целочисленное деление, усеченное до отрицательной бесконечности.
ПРЕДУПРЕЖДЕНИЕ: Эта функция частична (потому что она выбрасывает исключение, когда 0 передаётся в качестве делителя) для всех целочисленных типов в base.
mod :: a -> a -> a infixl 7 Исходный код
Целочисленный модуль, удовлетворяющий
(x `div` y)*y + (x `mod` y) == x
ПРЕДУПРЕЖДЕНИЕ: Эта функция частична (потому что она выбрасывает исключение, когда 0 передаётся в качестве делителя) для всех целочисленных типов в base.
quotRem :: a -> a -> (a, a) Исходный код
Одновременное вычисление quot и rem.
ПРЕДУПРЕЖДЕНИЕ: Эта функция частична (потому что она выбрасывает исключение, когда 0 передаётся в качестве делителя) для всех целочисленных типов в base.
divMod :: a -> a -> (a, a) Исходный код
Одновременное вычисление div и mod.
ПРЕДУПРЕЖДЕНИЕ: Эта функция частична (потому что она выбрасывает исключение, когда 0 передаётся в качестве делителя) для всех целочисленных типов в base.
toInteger :: a -> Целое Исходный код
Преобразование в Integer.
Экземпляры
| Integral CBool Источник | |
Определено в GHC.Internal.Foreign.C.Types | |
| Integral CChar Источник | |
Определено в GHC.Internal.Foreign.C.Types | |
| Integral CInt Источник | |
Определено в GHC.Internal.Foreign.C.Types | |
| Integral CIntMax Источник | |
Определено в GHC.Internal.Foreign.C.Types Краткое описание методовquot :: CShort -> CShort -> CShort Источник rem :: CShort -> CShort -> CShort Источник div :: CShort -> CShort -> CShort Источник mod :: CShort -> CShort -> CShort Источник quotRem :: CShort -> CShort -> (CShort, CShort) Источник | |
| Integral CSigAtomic Источник | |
Определено в GHC.Internal.Foreign.C.Types Краткое описание методовquot :: CSigAtomic -> CSigAtomic -> CSigAtomic Источник rem :: CSigAtomic -> CSigAtomic -> CSigAtomic Источник div :: CSigAtomic -> CSigAtomic -> CSigAtomic Источник mod :: CSigAtomic -> CSigAtomic -> CSigAtomic Источник quotRem :: CSigAtomic -> CSigAtomic -> (CSigAtomic, CSigAtomic) Источник divMod :: CSigAtomic -> CSigAtomic -> (CSigAtomic, CSigAtomic) Источник toInteger :: CSigAtomic -> Integer Источник | |
| Integral CSize Источник | |
Определено в GHC.Internal.Foreign.C.Types | |
| Integral CUChar Источник | |
Определено в GHC.Internal.Foreign.C.Types | |
| Integral CUInt Источник | |
Определено в GHC.Internal.Foreign.C.Types | |
| Integral CUIntMax Источник | |
Определено в GHC.Internal.Foreign.C.Types Методыquot :: CUIntMax -> CUIntMax -> CUIntMax Источник rem :: CUIntMax -> CUIntMax -> CUIntMax Источник div :: CUIntMax -> CUIntMax -> CUIntMax Источник mod :: CUIntMax -> CUIntMax -> CUIntMax Источник quotRem :: CUIntMax -> CUIntMax -> (CUIntMax, CUIntMax) Источник divMod :: CUIntMax -> CUIntMax -> (CUIntMax, CUIntMax) Источник | |
| Integral CUIntPtr Источник | |
Определено в GHC.Internal.Foreign.C.Types Краткое описание методовquot :: CUShort -> CUShort -> CUShort Source rem :: CUShort -> CUShort -> CUShort Source div :: CUShort -> CUShort -> CUShort Source mod :: CUShort -> CUShort -> CUShort Source quotRem :: CUShort -> CUShort -> (CUShort, CUShort) Source | |
| Integral CWchar Source | |
Определено в GHC.Internal.Foreign.C.Types | |
| Integral IntPtr Source | |
Определено в GHC.Internal.Foreign.Ptr | |
| Integral WordPtr Source | |
Определено в GHC.Internal.Int Методыquot :: Int64 -> Int64 -> Int64 Исходный код rem :: Int64 -> Int64 -> Int64 Исходный код div :: Int64 -> Int64 -> Int64 Исходный код mod :: Int64 -> Int64 -> Int64 Исходный код quotRem :: Int64 -> Int64 -> (Int64, Int64) Исходный код divMod :: Int64 -> Int64 -> (Int64, Int64) Исходный код toInteger :: Int64 -> Integer Исходный код | |
| Integral Int8 Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Int Методыquot :: Int8 -> Int8 -> Int8 Исходный код rem :: Int8 -> Int8 -> Int8 Исходный код div :: Int8 -> Int8 -> Int8 Исходный код mod :: Int8 -> Int8 -> Int8 Исходный код quotRem :: Int8 -> Int8 -> (Int8, Int8) Исходный код divMod :: Int8 -> Int8 -> (Int8, Int8) Исходный код toInteger :: Int8 -> Integer Исходный код | |
| Integral CBlkCnt Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CBlkCnt -> CBlkCnt -> CBlkCnt Исходный код rem :: CBlkCnt -> CBlkCnt -> CBlkCnt Исходный код div :: CBlkCnt -> CBlkCnt -> CBlkCnt Исходный код mod :: CBlkCnt -> CBlkCnt -> CBlkCnt Исходный код quotRem :: CBlkCnt -> CBlkCnt -> (CBlkCnt, CBlkCnt) Исходный код divMod :: CBlkCnt -> CBlkCnt -> (CBlkCnt, CBlkCnt) Исходный код toInteger :: CBlkCnt -> Integer Исходный код | |
| Integral CBlkSize Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CBlkSize -> CBlkSize -> CBlkSize Исходный код rem :: CBlkSize -> CBlkSize -> CBlkSize Исходный код div :: CBlkSize -> CBlkSize -> CBlkSize Исходный код mod :: CBlkSize -> CBlkSize -> CBlkSize Исходный код quotRem :: CBlkSize -> CBlkSize -> (CBlkSize, CBlkSize) Исходный код divMod :: CBlkSize -> CBlkSize -> (CBlkSize, CBlkSize) Исходный код toInteger :: CBlkSize -> Integer Исходный код | |
| Integral CClockId Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CClockId -> CClockId -> CClockId Исходный код rem :: CClockId -> CClockId -> CClockId Исходный код div :: CClockId -> CClockId -> CClockId Исходный код mod :: CClockId -> CClockId -> CClockId Исходный код quotRem :: CClockId -> CClockId -> (CClockId, CClockId) Исходный код divMod :: CClockId -> CClockId -> (CClockId, CClockId) Исходный код toInteger :: CClockId -> Integer Исходный код | |
| Integral CDev Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CDev -> CDev -> CDev Исходный код rem :: CDev -> CDev -> CDev Исходный код div :: CDev -> CDev -> CDev Исходный код mod :: CDev -> CDev -> CDev Исходный код quotRem :: CDev -> CDev -> (CDev, CDev) Исходный код divMod :: CDev -> CDev -> (CDev, CDev) Исходный код toInteger :: CDev -> Integer Исходный код | |
| Integral CFsBlkCnt Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Источник rem :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Источник div :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Источник mod :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Источник quotRem :: CFsBlkCnt -> CFsBlkCnt -> (CFsBlkCnt, CFsBlkCnt) Источник divMod :: CFsBlkCnt -> CFsBlkCnt -> (CFsBlkCnt, CFsBlkCnt) Источник | |
| Целочисленное CFsFilCnt Источник | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Источник rem :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Источник div :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Источник mod :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Источник quotRem :: CFsFilCnt -> CFsFilCnt -> (CFsFilCnt, CFsFilCnt) Источник divMod :: CFsFilCnt -> CFsFilCnt -> (CFsFilCnt, CFsFilCnt) Источник | |
| Целочисленный CGid Источник | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CGid -> CGid -> CGid Исходный код rem :: CGid -> CGid -> CGid Исходный код div :: CGid -> CGid -> CGid Исходный код mod :: CGid -> CGid -> CGid Исходный код quotRem :: CGid -> CGid -> (CGid, CGid) Исходный код divMod :: CGid -> CGid -> (CGid, CGid) Исходный код toInteger :: CGid -> Integer Исходный код | |
| Integral CId Исходный код | |
Определено в GHC.Internal.System.Posix.Types | |
| Integral CIno Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CIno -> CIno -> CIno Исходный код rem :: CIno -> CIno -> CIno Исходный код div :: CIno -> CIno -> CIno Исходный код mod :: CIno -> CIno -> CIno Исходный код quotRem :: CIno -> CIno -> (CIno, CIno) Исходный код divMod :: CIno -> CIno -> (CIno, CIno) Исходный код toInteger :: CIno -> Integer Исходный код | |
| Integral CKey Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CKey -> CKey -> CKey Исходный код rem :: CKey -> CKey -> CKey Исходный код div :: CKey -> CKey -> CKey Исходный код mod :: CKey -> CKey -> CKey Исходный код quotRem :: CKey -> CKey -> (CKey, CKey) Исходный код divMod :: CKey -> CKey -> (CKey, CKey) Исходный код toInteger :: CKey -> Integer Исходный код | |
| Integral CMode Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CMode -> CMode -> CMode Исходный код rem :: CMode -> CMode -> CMode Исходный код div :: CMode -> CMode -> CMode Исходный код mod :: CMode -> CMode -> CMode Исходный код quotRem :: CMode -> CMode -> (CMode, CMode) Исходный код divMod :: CMode -> CMode -> (CMode, CMode) Исходный код toInteger :: CMode -> Integer Исходный код | |
| Integral CNfds Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CNfds -> CNfds -> CNfds Исходный код rem :: CNfds -> CNfds -> CNfds Исходный код div :: CNfds -> CNfds -> CNfds Исходный код mod :: CNfds -> CNfds -> CNfds Исходный код quotRem :: CNfds -> CNfds -> (CNfds, CNfds) Исходный код divMod :: CNfds -> CNfds -> (CNfds, CNfds) Исходный код toInteger :: CNfds -> Integer Исходный код | |
| Integral CNlink Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CNlink -> CNlink -> CNlink Исходный код rem :: CNlink -> CNlink -> CNlink Исходный код div :: CNlink -> CNlink -> CNlink Исходный код mod :: CNlink -> CNlink -> CNlink Исходный код quotRem :: CNlink -> CNlink -> (CNlink, CNlink) Исходный код divMod :: CNlink -> CNlink -> (CNlink, CNlink) Исходный код toInteger :: CNlink -> Integer Исходный код | |
| Integral COff Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: COff -> COff -> COff Исходный код rem :: COff -> COff -> COff Исходный код div :: COff -> COff -> COff Исходный код mod :: COff -> COff -> COff Исходный код quotRem :: COff -> COff -> (COff, COff) Исходный код divMod :: COff -> COff -> (COff, COff) Исходный код toInteger :: COff -> Integer Исходный код | |
| Integral CPid Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CPid -> CPid -> CPid Исходный код rem :: CPid -> CPid -> CPid Исходный код div :: CPid -> CPid -> CPid Исходный код mod :: CPid -> CPid -> CPid Исходный код quotRem :: CPid -> CPid -> (CPid, CPid) Исходный код divMod :: CPid -> CPid -> (CPid, CPid) Исходный код toInteger :: CPid -> Integer Исходный код | |
| Integral CRLim Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CRLim -> CRLim -> CRLim Исходный код rem :: CRLim -> CRLim -> CRLim Исходный код div :: CRLim -> CRLim -> CRLim Исходный код mod :: CRLim -> CRLim -> CRLim Исходный код quotRem :: CRLim -> CRLim -> (CRLim, CRLim) Исходный код divMod :: CRLim -> CRLim -> (CRLim, CRLim) Исходный код toInteger :: CRLim -> Integer Исходный код | |
| Integral CSocklen Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CSocklen -> CSocklen -> CSocklen Исходный код rem :: CSocklen -> CSocklen -> CSocklen Исходный код div :: CSocklen -> CSocklen -> CSocklen Исходный код mod :: CSocklen -> CSocklen -> CSocklen Исходный код quotRem :: CSocklen -> CSocklen -> (CSocklen, CSocklen) Исходный код divMod :: CSocklen -> CSocklen -> (CSocklen, CSocklen) Исходный код toInteger :: CSocklen -> Целое Исходный код | |
| Целое CSsize Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CSsize -> CSsize -> CSsize Исходный код rem :: CSsize -> CSsize -> CSsize Исходный код div :: CSsize -> CSsize -> CSsize Исходный код mod :: CSsize -> CSsize -> CSsize Исходный код quotRem :: CSsize -> CSsize -> (CSsize, CSsize) Исходный код divMod :: CSsize -> CSsize -> (CSsize, CSsize) Исходный код toInteger :: CSsize -> Integer Исходный код | |
| Integral CTcflag Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CTcflag -> CTcflag -> CTcflag Исходный код rem :: CTcflag -> CTcflag -> CTcflag Исходный код div :: CTcflag -> CTcflag -> CTcflag Исходный код mod :: CTcflag -> CTcflag -> CTcflag Исходный код quotRem :: CTcflag -> CTcflag -> (CTcflag, CTcflag) Исходный код divMod :: CTcflag -> CTcflag -> (CTcflag, CTcflag) Исходный код toInteger :: CTcflag -> Integer Исходный код | |
| Integral CUid Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыquot :: CUid -> CUid -> CUid Исходный код rem :: CUid -> CUid -> CUid Исходный код div :: CUid -> CUid -> CUid Исходный код mod :: CUid -> CUid -> CUid Исходный код quotRem :: CUid -> CUid -> (CUid, CUid) Исходный код divMod :: CUid -> CUid -> (CUid, CUid) Исходный код toInteger :: CUid -> Integer Исходный код | |
| Integral Fd Исходный код | |
Определено в GHC.Internal.System.Posix.Types | |
| Integral Word16 Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Word Методыquot :: Word16 -> Word16 -> Word16 Исходный код rem :: Word16 -> Word16 -> Word16 Исходный код div :: Word16 -> Word16 -> Word16 Исходный код mod :: Word16 -> Word16 -> Word16 Исходный код quotRem :: Word16 -> Word16 -> (Word16, Word16) Исходный код divMod :: Word16 -> Word16 -> (Word16, Word16) Исходный код toInteger :: Word16 -> Integer Исходный код | |
| Integral Word32 Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Word Краткое описание методовquot :: Word32 -> Word32 -> Word32 Источник rem :: Word32 -> Word32 -> Word32 Источник div :: Word32 -> Word32 -> Word32 Источник mod :: Word32 -> Word32 -> Word32 Источник quotRem :: Word32 -> Word32 -> (Word32, Word32) Источник | |
| Integral Word64 Источник | С версии: base-2.1 |
Определено в GHC.Internal.Word Краткое описание методовquot :: Word64 -> Word64 -> Word64 Источник rem :: Word64 -> Word64 -> Word64 Источник div :: Word64 -> Word64 -> Word64 Источник mod :: Word64 -> Word64 -> Word64 Источник quotRem :: Word64 -> Word64 -> (Word64, Word64) Источник | |
| Integral Word8 Источник | С версии: base-2.1 |
Определено в GHC.Internal.Word | |
| Integral Integer Источник | С версии: base-2.0.1 |
Определено в GHC.Internal.Real Краткое описание методовquot :: Integer -> Integer -> Integer Источник rem :: Integer -> Integer -> Integer Источник div :: Integer -> Integer -> Integer Источник mod :: Integer -> Integer -> Integer Источник quotRem :: Integer -> Integer -> (Integer, Integer) Источник | |
| Integral Natural Источник | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Real Краткое описание методовquot :: Natural -> Natural -> Natural Источник rem :: Natural -> Natural -> Natural Источник div :: Natural -> Natural -> Natural Источник mod :: Natural -> Natural -> Natural Источник quotRem :: Natural -> Natural -> (Natural, Natural) Источник | |
| Integral Int Источник | С версии: base-2.0.1 |
Определено в GHC.Internal.Real | |
| Integral Word Источник | С версии: base-2.1 |
| Целочисленная (f (g a)) => Целочисленная (Compose f g a) Источник | С момента: base-4.19.0.0 |
Определено в Data.Functor.Compose Методыquot :: Compose f g a -> Compose f g a -> Compose f g a Источник rem :: Compose f g a -> Compose f g a -> Compose f g a Источник div :: Compose f g a -> Compose f g a -> Compose f g a Источник mod :: Compose f g a -> Compose f g a -> Compose f g a Источник quotRem :: Compose f g a -> Compose f g a -> (Compose f g a, Compose f g a) Источник divMod :: Compose f g a -> Compose f g a -> (Compose f g a, Compose f g a) Источник | |
class Число a => Дробное a where Источник
Дробные числа, поддерживающие деление с плавающей точкой.
Отчёт по Haskell не определяет законов для Fractional. Однако, (+) и (*) обычно ожидаются, чтобы определить кольцо деления и иметь следующие свойства:
recipдаёт обратный элемент относительно умножения-
x * recip x=recip x * x=fromInteger 1 - Полная определённость
toRational -
toRationalявляется полной - Согласованность с
toRational - если тип также реализует
Real, тоfromRationalявляется обратным элементом слева дляtoRational, т.е.fromRational (toRational i) = i
Обратите внимание, что обычно не ожидается, что экземпляр типа Fractional реализует поле. Однако, все экземпляры в base делают это.
Минимальное полное определение
fromRational, (recip | (/))
Методы
(/) :: a -> a -> a infixl 7 Источник
Деление с плавающей точкой.
Обратная дробь.
fromRational :: Рациональное -> a Источник
Преобразование из Rational (то есть Ratio Integer). Плавающая десятичная константа соответствует применению fromRational к значению типа Rational, поэтому такие литералы имеют тип (Fractional a) => a.
Экземпляры
| Fractional CDouble Источник | |
| Fractional CFloat Источник | |
| RealFloat a => Fractional (Complex a) Источник | С версии: base-2.1 |
| Fractional a => Fractional (Identity a) Источник | С версии: base-4.9.0.0 |
| Fractional a => Fractional (Down a) Источник | С версии: base-4.14.0.0 |
| Integral a => Fractional (Ratio a) Источник | С версии: base-2.0.1 |
| HasResolution a => Fractional (Fixed a) Source | Since: base-2.1 |
| Fractional a => Fractional (Op a b) Source | |
| Fractional a => Fractional (Const a b) Source | Since: base-4.9.0.0 |
| Fractional (f (g a)) => Fractional (Compose f g a) Source | Since: base-4.20.0.0 |
class (Real a, Fractional a) => RealFrac a where Source
Извлечение компонентов дробей.
Минимальное полное определение
Methods
properFraction :: Integral b => a -> (b, a) Source
Функция properFraction принимает вещественное дробное число x и возвращает пару (n,f) такую, что x = n+f, и:
-
nявляется целым числом с тем же знаком, что иx; и -
fявляется дробью с тем же типом и знаком, что иx, и с абсолютным значением меньше1.
Определения по умолчанию функций ceiling, floor, truncate и round даны через properFraction.
truncate :: Integral b => a -> b Source
truncate x возвращает целое число, ближайшее x между нулём и x
round :: Integral b => a -> b Source
round x возвращает ближайшее целое число к x; чётное целое число, если x равноудалено от двух целых чисел
ceiling :: Integral b => a -> b Source
ceiling x возвращает наименьшее целое число, не меньшее x
floor :: Integral b => a -> b Source
floor x возвращает наибольшее целое число, не большее x
Экземпляры
Преобразование
fromIntegral :: (Целочисленный a, Число b) => a -> b Исходный код
Общее приведение типов из Integral.
ВНИМАНИЕ: Эта функция выполняет неявное усечение, если тип результата не по крайней мере так же велик, как тип аргумента.
realToFrac :: (Действительный a, Дробный b) => a -> b Исходный код
Общее приведение типов к Fractional типам.
ВНИМАНИЕ: Эта функция проходит через Rational тип, который не имеет значений для NaN, например. Это означает, что она необратима.
Для Double она также ведет себя по-разному с -O0 или без него:
Prelude> realToFrac nan -- With -O0 -Infinity Prelude> realToFrac nan NaN
Форматирование
Аргументы
| :: Real a | |
| => (a -> ShowS) | Функция, которая может отображать беззнаковые значения |
| -> Int | Приоритет окружающего контекста |
| -> a | Значение для отображения |
| -> ShowS |
Преобразует возможно отрицательное Real значение в строку.
Предикаты
even :: Integral a => a -> Bool Источник
odd :: Integral a => a -> Bool Источник
Арифметика
(^) :: (Num a, Integral b) => a -> b -> a infixr 8 Источник
Возведение числа в неотрицательную целую степень
(^^) :: (Fractional a, Integral b) => a -> b -> a infixr 8 Источник
Возведение числа в целую степень
gcd :: Integral a => a -> a -> a Источник
gcd x y — это наибольший неотрицательный общий делитель x и y, то есть наибольший общий делитель, где каждый общий делитель x и y также является делителем; например, gcd 4 2 = 2, gcd (-4) 6 = 2, gcd 0 4 = 4. gcd 0 0 = 0. (Это наибольший общий делитель в порядке делимости.)
Примечание: Так как для знаковых целых чисел фиксированной ширины, abs minBound < 0, результат может быть отрицательным, если один из аргументов minBound (и обязательно является таковым, если другой — 0 или minBound) для таких типов.
lcm :: Integral a => a -> a -> a Источник
lcm x y — это наименьшее положительное целое число, которое делит как x, так и y.
Рациональное число
Рациональные числа, с числителем и знаменателем некоторого Integral типа.
Обратите внимание, что экземпляры Ratio наследуют недостатки от типа-параметра. Например, экземпляр Ratio Natural Num имеет похожие проблемы, что и экземпляр Natural.
Конструкторы
| !a :% !a |
Экземпляры
| Integral a => Lift (Ratio a :: Type) Source | |
| (Data a, Integral a) => Data (Ratio a) Source | С версии: base-4.0.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ratio a -> c (Ratio a) Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ratio a) Source toConstr :: Ratio a -> Constr Source dataTypeOf :: Ratio a -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ratio a)) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ratio a)) Source gmapT :: (forall b. Data b => b -> b) -> Ratio a -> Ratio a Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r Source gmapQ :: (forall d. Data d => d -> u) -> Ratio a -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Ratio a -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Source | |
| Integral a => Enum (Ratio a) Source | С версии: base-2.0.1 |
Определено в GHC.Internal.Real Методыcompare :: Ratio a -> Ratio a -> Ordering Исходный код (<) :: Ratio a -> Ratio a -> Bool Исходный код (<=) :: Ratio a -> Ratio a -> Bool Исходный код (>) :: Ratio a -> Ratio a -> Bool Исходный код (>=) :: Ratio a -> Ratio a -> Bool Исходный код max :: Ratio a -> Ratio a -> Ratio a Исходный код min :: Ratio a -> Ratio a -> Ratio a Исходный код |
type Rational = Ratio Integer Исходный код
Рациональные числа произвольной точности, представленные как отношение двух Integer значений. Рациональное число можно создать с помощью оператора %.
infinity :: Rational Исходный код
notANumber :: Rational Исходный код
Справочные данные по Enum
numericEnumFrom :: Fractional a => a -> [a] Исходный код
numericEnumFromThen :: Fractional a => a -> a -> [a] Исходный код
numericEnumFromTo :: (Ord a, Fractional a) => a -> a -> [a] Исходный код
numericEnumFromThenTo :: (Ord a, Fractional a) => a -> a -> a -> [a] Исходный код
integralEnumFrom :: (Integral a, Bounded a) => a -> [a] Исходный код
integralEnumFromThen :: (Integral a, Bounded a) => a -> a -> [a] Исходный код
integralEnumFromTo :: Integral a => a -> a -> [a] Исходный код
integralEnumFromThenTo :: Integral a => a -> a -> a -> [a] Исходный код
Создание
(%) :: Integral a => a -> a -> Ratio a infixl 7 Исходный код
Образует отношение двух целых чисел.
Проекция
numerator :: Ratio a -> a Исходный код
Извлечь числитель отношения в приведенной форме: числитель и знаменатель не имеют общего делителя, а знаменатель положителен.
denominator :: Ratio a -> a Исходный код
Извлечь знаменатель отношения в приведенной форме: числитель и знаменатель не имеют общего делителя, а знаменатель положителен.
Операции
reduce :: Integral a => a -> a -> Ratio a Исходный код
reduce - вспомогательная функция, используемая только в этом модуле. Она нормализует отношение, разделив числитель и знаменатель на их наибольший общий делитель.
Внутреннее
ratioPrec1 :: Int Исходный код
divZeroError :: a Исходный код
ratioZeroDenominatorError :: a Исходный код
overflowError :: a Исходный код
underflowError :: a Исходный код
mkRationalBase2 :: Rational -> Integer -> Rational Исходный код
mkRationalBase10 :: Rational -> Integer -> Rational Исходный код
Примеры реализации
| Show FractionalExponentBase Исходный код | |
Определено в GHC.Internal.Real МетодыshowsPrec :: Int -> FractionalExponentBase -> ShowS Исходный код | |
(^%^) :: Integral a => Rational -> a -> Rational Исходный код
(^^%^^) :: Integral a => Rational -> a -> Rational Исходный код
mkRationalWithExponentBase :: Rational -> Integer -> FractionalExponentBase -> Rational Исходный код
powImpl :: (Num a, Integral b) => a -> b -> a Исходный код
powImplAcc :: (Num a, Integral b) => a -> b -> a -> a Исходный код
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-Real.html