GHC.Real
| Copyright | (c) The University of Glasgow 1994-2002 |
|---|---|
| License | see libraries/base/LICENSE |
| Maintainer | cvs-ghc@haskell.org |
| Stability | internal |
| Portability | non-portable (GHC Extensions) |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
divZeroError :: a Source
ratioZeroDenominatorError :: a Source
overflowError :: a Source
underflowError :: a Source
Рациональные числа, с числителем и знаменателем некоторого типа Integral.
Обратите внимание, что экземпляры Ratio наследуют недостатки от параметра типа. Например, экземпляр Ratio Natural Num имеет похожие проблемы, что и Natural.
Конструкторы
| !a :% !a |
Экземпляры
| Integral a => Enum (Ratio a) | Since: base-2.0.1 |
Определено в GHC.Real Методыsucc :: Ratio a -> Ratio a Source pred :: Ratio a -> Ratio a Source toEnum :: Int -> Ratio a Source fromEnum :: Ratio a -> Int Source enumFrom :: Ratio a -> [Ratio a] Source enumFromThen :: Ratio a -> Ratio a -> [Ratio a] Source enumFromTo :: Ratio a -> Ratio a -> [Ratio a] Source enumFromThenTo :: Ratio a -> Ratio a -> Ratio a -> [Ratio a] Source | |
| Eq a => Eq (Ratio a) | Since: base-2.1 |
| Integral a => Fractional (Ratio a) | Since: base-2.0.1 |
| (Data a, Integral a) => Data (Ratio a) | Since: base-4.0.0.0 |
Определено в Data.Data Методыgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ratio a -> c (Ratio a) Исходный код gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ratio a) Исходный код toConstr :: Ratio a -> Constr Исходный код dataTypeOf :: Ratio a -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ratio a)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ratio a)) Исходный код gmapT :: (forall b. Data b => b -> b) -> Ratio a -> Ratio a Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Ratio a -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Ratio a -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Исходный код | |
| Integral a => Num (Ratio a) | С момента: base-2.0.1 |
Определено в GHC.Real Методы(+) :: Ratio a -> Ratio a -> Ratio a Исходный код (-) :: Ratio a -> Ratio a -> Ratio a Исходный код (*) :: Ratio a -> Ratio a -> Ratio a Исходный код negate :: Ratio a -> Ratio a Исходный код abs :: Ratio a -> Ratio a Исходный код signum :: Ratio a -> Ratio a Исходный код fromInteger :: Integer -> Ratio a Исходный код | |
| Integral a => Ord (Ratio a) | С момента: base-2.0.1 |
Определено в Foreign.Storable МетодыsizeOf :: Ratio a -> Int Исходный код alignment :: Ratio a -> Int Исходный код peekElemOff :: Ptr (Ratio a) -> Int -> IO (Ratio a) Исходный код pokeElemOff :: Ptr (Ratio a) -> Int -> Ratio a -> IO () Исходный код peekByteOff :: Ptr b -> Int -> IO (Ratio a) Исходный код pokeByteOff :: Ptr b -> Int -> Ratio a -> IO () Исходный код |
type Рациональное число = Ratio Integer Исходный код
Рациональные числа произвольной точности, представленные как отношение двух Integer значений. Рациональное число может быть создано с помощью оператора %.
ratioPrec1 :: Int Исходный код
бесконечность :: Рациональное число Исходный код
не число :: Рациональное число Исходный код
(%) :: Целочисленный a => a -> a -> Ratio a infixl 7 Исходный код
Образует отношение двух целых чисел.
числитель :: Ratio a -> a Исходный код
Извлечь числитель отношения в сокращённой форме: числитель и знаменатель не имеют общего делителя, и знаменатель положителен.
знаменатель :: Ratio a -> a Исходный код
Извлечь знаменатель отношения в сокращённой форме: числитель и знаменатель не имеют общего делителя, и знаменатель положителен.
reduce :: Целочисленный a => a -> a -> Ratio a Исходный код
reduce — вспомогательная функция, используемая только в этом модуле. Она нормализует отношение, разделив числитель и знаменатель на их наибольший общий делитель.
class (Число a, Порядок a) => Действительный a where Исходный код
Методы
вРациональное :: a -> Рациональное число Исходный код
Рациональное эквивалент своего вещественного аргумента с полной точностью
Экземпляры
| Real Double | С версии: base-2.1 |
Определено в GHC.Float МетодыtoRational :: Double -> Rational Источник | |
| Real Float | С версии: base-2.1 |
Определено в GHC.Float МетодыtoRational :: Float -> Rational Источник | |
| Real Int | С версии: base-2.0.1 |
Определено в GHC.Real МетодыtoRational :: Int -> Rational Источник | |
| Real Int8 | С версии: base-2.1 |
Определено в GHC.Int МетодыtoRational :: Int8 -> Rational Источник | |
| Real Int16 | С версии: base-2.1 |
Определено в GHC.Int МетодыtoRational :: Int16 -> Rational Источник | |
| Real Int32 | С версии: base-2.1 |
Определено в GHC.Int МетодыtoRational :: Int32 -> Rational Источник | |
| Real Int64 | С версии: base-2.1 |
Определено в GHC.Int МетодыtoRational :: Int64 -> Rational Источник | |
| Real Integer | С версии: base-2.0.1 |
Определено в GHC.Real МетодыtoRational :: Integer -> Rational Источник | |
| Real Natural | С версии: base-4.8.0.0 |
Определено в GHC.Real МетодыtoRational :: Natural -> Rational Источник | |
| Real Word | С версии: base-2.1 |
Определено в GHC.Real МетодыtoRational :: Word -> Rational Источник | |
| Real Word8 | С версии: base-2.1 |
Определено в GHC.Word МетодыtoRational :: Word8 -> Rational Источник | |
| Real Word16 | С версии: base-2.1 |
Определено в GHC.Word МетодыtoRational :: Word16 -> Rational Источник | |
| Real Word32 | С версии: base-2.1 |
Определено в GHC.Word МетодыtoRational :: Word32 -> Rational Источник | |
| Real Word64 | С версии: base-2.1 |
Определено в GHC.Word МетодыtoRational :: Word64 -> Rational Источник | |
| Real IntPtr | |
class (Real a, Enum a) => Integral a where Source
Целые числа, поддерживающие целочисленное деление.
В отчёте по 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.
Методы
quot :: a -> a -> a infixl 7 Источник
целочисленное деление, усеченное к нулю
rem :: a -> a -> a infixl 7 Источник
целочисленный остаток, удовлетворяющий
(x `quot` y)*y + (x `rem` y) == x
div :: a -> a -> a infixl 7 Источник
целочисленное деление, усеченное к отрицательной бесконечности
mod :: a -> a -> a infixl 7 Источник
целочисленный модуль, удовлетворяющий
(x `div` y)*y + (x `mod` y) == x
quotRem :: a -> a -> (a, a) Источник
одновременное получение quot и rem
divMod :: a -> a -> (a, a) Источник
одновременное получение div и mod
toInteger :: a -> Целое Источник
преобразование в Integer
Экземпляры
| Integral Int | С версии: base-2.0.1 |
| Integral Int8 | С версии: base-2.1 |
Определено в GHC.Int | |
| Integral Int16 | С версии: base-2.1 |
| Integral Int32 | С версии: base-2.1 |
Определено в GHC.Word | |
| Integral Word32 | Since: base-2.1 |
Определено в GHC.Word | |
| Integral Word64 | Since: base-2.1 |
Определено в GHC.Word | |
| Integral IntPtr | |
Определено в 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 CWchar | |
Определено в Foreign.C.Types | |
| Integral CSize | |
Определено в Foreign.C.Types | |
| Integral CPtrdiff | |
Определено в Foreign.C.Types Методыquot :: CPtrdiff -> CPtrdiff -> CPtrdiff Источник rem :: CPtrdiff -> CPtrdiff -> CPtrdiff Источник div :: CPtrdiff -> CPtrdiff -> CPtrdiff Источник mod :: CPtrdiff -> CPtrdiff -> CPtrdiff Источник quotRem :: CPtrdiff -> CPtrdiff -> (CPtrdiff, CPtrdiff) Источник divMod :: CPtrdiff -> CPtrdiff -> (CPtrdiff, CPtrdiff) Источник | |
| Integral CBool | |
Определено в Foreign.C.Types | |
| Integral CULLong | |
Определено в Foreign.C.Types Методыquot :: CULLong -> CULLong -> CULLong Источник rem :: CULLong -> CULLong -> CULLong Источник div :: CULLong -> CULLong -> CULLong Источник mod :: CULLong -> CULLong -> CULLong Источник quotRem :: CULLong -> CULLong -> (CULLong, CULLong) Источник | |
| Integral CLLong | |
Определено в Foreign.C.Types Краткое описание методовquot :: CChar -> CChar -> CChar Исходный код rem :: CChar -> CChar -> CChar Исходный код div :: CChar -> CChar -> CChar Исходный код mod :: CChar -> CChar -> CChar Исходный код quotRem :: CChar -> CChar -> (CChar, CChar) Исходный код divMod :: CChar -> CChar -> (CChar, CChar) Исходный код toInteger :: CChar -> Integer Исходный код | |
| Integral Fd | |
Определено в System.Posix.Types | |
| Integral CNfds | |
Определено в 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 CSocklen | |
Определено в System.Posix.Types Краткое описание методовquot :: CTcflag -> CTcflag -> CTcflag Источник rem :: CTcflag -> CTcflag -> CTcflag Источник div :: CTcflag -> CTcflag -> CTcflag Источник mod :: CTcflag -> CTcflag -> CTcflag Источник quotRem :: CTcflag -> CTcflag -> (CTcflag, CTcflag) Источник | |
| Integral CUid | |
Определено в System.Posix.Types | |
| Integral CNlink | |
Определено в System.Posix.Types Краткое описание методовquot :: CNlink -> CNlink -> CNlink Источник rem :: CNlink -> CNlink -> CNlink Источник div :: CNlink -> CNlink -> CNlink Источник mod :: CNlink -> CNlink -> CNlink Источник quotRem :: CNlink -> CNlink -> (CNlink, CNlink) Источник | |
| Integral CGid | |
Определено в System.Posix.Types | |
| Integral CSsize | |
Определено в System.Posix.Types Краткое описание методовquot :: CSsize -> CSsize -> CSsize Источник rem :: CSsize -> CSsize -> CSsize Источник div :: CSsize -> CSsize -> CSsize Источник mod :: CSsize -> CSsize -> CSsize Источник quotRem :: CSsize -> CSsize -> (CSsize, CSsize) Источник | |
| Integral CPid | |
Определено в System.Posix.Types | |
| Integral COff | |
Определено в System.Posix.Types | |
| Integral CMode | |
Определено в System.Posix.Types | |
| Integral CIno | |
Определено в System.Posix.Types | |
| Integral CDev | |
Определено в 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 a => Integral (Down a) | С момента: base-4.14.0.0 |
Определено в Data.Ord Методыquot :: Down a -> Down a -> Down a Исходный код rem :: Down a -> Down a -> Down a Исходный код div :: Down a -> Down a -> Down a Исходный код mod :: Down a -> Down a -> Down a Исходный код quotRem :: Down a -> Down a -> (Down a, Down a) Исходный код divMod :: Down a -> Down a -> (Down a, Down a) Исходный код toInteger :: Down a -> Integer Исходный код | |
| Integral a => Integral (Identity a) | С момента: base-4.9.0.0 |
Определено в Data.Functor.Identity Методы | |
| Integral a => Integral (Const a b) | С момента: base-4.9.0.0 |
Определено в Data.Functor.Const Методыquot :: Const a b -> Const a b -> Const a b Исходный код rem :: Const a b -> Const a b -> Const a b Исходный код div :: Const a b -> Const a b -> Const a b Исходный код mod :: Const a b -> Const a b -> Const a b Исходный код quotRem :: Const a b -> Const a b -> (Const a b, Const a b) Исходный код divMod :: Const a b -> Const a b -> (Const a b, Const a b) Исходный код toInteger :: Const a b -> Integer Исходный код |
class Num a => Fractional a where Исходный код
Дробные числа, поддерживающие деление с плавающей точкой.
Отчет Haskell не определяет законов для Fractional. Однако, (+) и (*) обычно ожидается, что они определят кольцо деления и будут обладать следующими свойствами:
recipзадаёт мультипликативную инверсию-
x * recip x=recip x * x=fromInteger 1
Обратите внимание, что обычно не ожидается, что экземпляр типа Fractional будет реализовывать поле. Однако все экземпляры в base это делают.
Минимальное полное определение
fromRational, (recip | (/))
Методы
(/) :: a -> a -> a infixl 7 Исходный код
Дробное деление.
recip :: a -> a Исходный код
Взаимно обратное дробное число.
fromRational :: Rational -> a Исходный код
Преобразование из Rational (то есть Ratio Integer). Вещественный литерал представляет собой применение fromRational к значению типа Rational, поэтому такие литералы имеют тип (Fractional a) => a.
Экземпляры
| Fractional Double |
Обратите внимание, что из-за наличия >>> 0/0 * (recip 0/0 :: Double) NaN Since: base-2.1 |
| Fractional Float |
Обратите внимание, что из-за наличия >>> 0/0 * (recip 0/0 :: Float) NaN Since: base-2.1 |
| Fractional CDouble | |
| Fractional CFloat | |
| Integral a => Fractional (Ratio a) | Since: base-2.0.1 |
| Fractional a => Fractional (Down a) | Since: base-4.14.0.0 |
| Fractional a => Fractional (Identity a) | Since: base-4.9.0.0 |
| RealFloat a => Fractional (Complex a) | Since: base-2.1 |
Определено в Data.Complex Методы(/) :: Комплексное a -> Комплексное a -> Комплексное a Источник recip :: Комплексное a -> Комплексное a Источник fromRational :: Рациональное -> Комплексное a Источник | |
| Дробное a => Дробное (Op a b) | |
Определено в Data.Functor.Contravariant | |
| HasResolution a => Дробное (Fixed a) | С момента: base-2.1 |
Определено в Data.Fixed | |
| Дробное a => Дробное (Const a b) | С момента: base-4.9.0.0 |
Определено в Data.Functor.Const | |
class (Вещественное a, Дробное a) => RealFrac a where Источник
Извлечение компонентов дробей.
Минимальное полное определение
Методы
properFraction :: Целочисленное b => a -> (b, a) Источник
Функция properFraction принимает вещественное дробное число x и возвращает пару (n,f), такую что x = n+f, и:
-
n- это целое число со знаком, совпадающим со знакомx; и -
f- это дробь с типом и знаком, совпадающими со знакомx, и с абсолютным значением меньше чем1.
Определения по умолчанию функций ceiling, floor, truncate и round основаны на properFraction.
truncate :: Целочисленное b => a -> b Источник
truncate x возвращает целое число, ближайшее к x, между нулём и x
round :: Целочисленное b => a -> b Источник
round x возвращает ближайшее целое число к x; чётное целое число, если x равноудалено от двух целых чисел
ceiling :: Целочисленное b => a -> b Источник
ceiling x возвращает наименьшее целое число, не меньшее чем x
floor :: Целочисленное b => a -> b Источник
floor x возвращает наибольшее целое число, не большее чем x
Экземпляры
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] Исходный код
fromIntegral :: (Integral a, Num b) => a -> b Исходный код
Общая кодировка из целочисленных типов
realToFrac :: (Real a, Fractional b) => a -> b Исходный код
Общая кодировка в дробные типы
Аргументы
| :: Real a | |
| => (a -> ShowS) | функция, которая может отображать беззнаковые значения |
| -> Int | приоритет окружающего контекста |
| -> a | значение для отображения |
| -> ShowS |
Преобразует возможно отрицательное Real значение в строку.
even :: Integral a => a -> Bool Source
odd :: Integral a => a -> Bool Source
(^) :: (Num a, Integral b) => a -> b -> a infixr 8 Source
Возводит число в неотрицательную целую степень.
(^^) :: (Fractional a, Integral b) => a -> b -> a infixr 8 Source
Возводит число в целую степень.
(^%^) :: Integral a => Rational -> a -> Rational Source
(^^%^^) :: Integral a => Rational -> a -> Rational Source
gcd :: Integral a => a -> a -> a Source
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 Source
lcm x y - наименьшее положительное целое число, которое делят как x, так и y.
gcdInt' :: Int -> Int -> Int Source
gcdWord' :: Word -> Word -> Word Source
integralEnumFrom :: (Integral a, Bounded a) => a -> [a] Source
integralEnumFromThen :: (Integral a, Bounded a) => a -> a -> [a] Source
integralEnumFromTo :: Integral a => a -> a -> [a] Source
integralEnumFromThenTo :: Integral a => a -> a -> a -> [a] Source
© 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-Real.html