GHC.Num
| Авторские права | (с) Университет Глазго 1994-2002 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддерживающий | cvs-ghc@haskell.org |
| Устойчивость | внутренняя |
| Переносимость | непереносимая (Расширения GHC) |
| Безопасный Haskell | Достойный доверия |
| Язык | Haskell2010 |
класс Num a где Исходный код
Базовый числовой класс.
Отчёт Haskell не определяет законов для Num. Однако, (+) и (*) обычно ожидается, что они определяют кольцо и имеют следующие свойства:
- Ассоциативность
(+) -
(x + y) + z=x + (y + z) - Коммутативность
(+) -
x + y=y + x fromInteger 0— аддитивная единица-
x + fromInteger 0=x negateдаёт аддитивный обратный элемент-
x + negate x=fromInteger 0 - Ассоциативность
(*) -
(x * y) * z=x * (y * z) fromInteger 1— мультипликативная единица-
x * fromInteger 1=xиfromInteger 1 * x=x - Дистрибутивность
(*)относительно(+) -
a * (b + c)=(a * b) + (a * c)и(b + c) * a=(b * a) + (c * a)
Обратите внимание, что обычно не ожидается, что экземпляр типа Num и Ord будет реализовывать упорядоченное кольцо. Действительно, в base только Integer и Rational делают это.
Методы
(+) :: a -> a -> a infixl 6 Исходный код
(-) :: a -> a -> a infixl 6 Исходный код
(*) :: a -> a -> a infixl 7 Исходный код
negate :: a -> a Исходный код
Унарное отрицание.
abs :: a -> a Исходный код
Модуль.
signum :: a -> a Исходный код
Знак числа. Функции abs и signum должны удовлетворять закону:
abs x * signum x == x
Для вещественных чисел, знак — это -1 (отрицательный), 0 (ноль) или 1 (положительный).
fromInteger :: Integer -> a Исходный код
Преобразование из Integer. Целочисленная константа представляет собой применение функции fromInteger к соответствующему значению типа Integer, поэтому такие константы имеют тип (Num a) => a.
Экземпляры
| Num Double |
Обратите внимание, что из-за наличия >>> 0/0 + (negate 0/0 :: Double) NaN Также обратите внимание, что из-за наличия -0, экземпляр >>> 0 + (-0 :: Double) 0.0 Since: base-2.1 |
| Num Float |
Обратите внимание, что из-за наличия >>> 0/0 + (negate 0/0 :: Float) NaN Также обратите внимание, что из-за наличия -0, экземпляр >>> 0 + (-0 :: Float) 0.0 Since: base-2.1 |
| Num Int | Since: base-2.1 |
| Num Int8 | Since: base-2.1 |
| Num Int16 | Since: base-2.1 |
| Num Int32 | С версии: base-2.1 |
| Num Int64 | С версии: base-2.1 |
| Num Int64 | С версии: base-2.1 |
Определено в GHC.Num Краткое описание методов(+) :: Integer -> Integer -> Integer Source (-) :: Integer -> Integer -> Integer Source (*) :: Integer -> Integer -> Integer Source negate :: Integer -> Integer Source abs :: Integer -> Integer Source signum :: Integer -> Integer Source fromInteger :: Integer -> Integer Source | |
| Num Natural |
Обратите внимание, что экземпляр С версии: base-4.8.0.0 |
| Num CSize | |
| Num CPtrdiff | |
Определено в Foreign.C.Types Краткое описание методов(+) :: CPtrdiff -> CPtrdiff -> CPtrdiff Source (-) :: CPtrdiff -> CPtrdiff -> CPtrdiff Source (*) :: CPtrdiff -> CPtrdiff -> CPtrdiff Source negate :: CPtrdiff -> CPtrdiff Source abs :: CPtrdiff -> CPtrdiff Source signum :: CPtrdiff -> CPtrdiff Source fromInteger :: Integer -> CPtrdiff Source | |
| Num CDouble | |
Определено в Foreign.C.Types Краткое описание методов(+) :: CDouble -> CDouble -> CDouble Source (-) :: CDouble -> CDouble -> CDouble Source (*) :: CDouble -> CDouble -> CDouble Source negate :: CDouble -> CDouble Source abs :: CDouble -> CDouble Source signum :: CDouble -> CDouble Source fromInteger :: Integer -> CDouble Source | |
| Num CFloat | |
| Num CUShort | |
Определено в Foreign.C.Types Краткое описание методов(+) :: CUShort -> CUShort -> CUShort Source (-) :: CUShort -> CUShort -> CUShort Source (*) :: CUShort -> CUShort -> CUShort Source negate :: CUShort -> CUShort Source abs :: CUShort -> CUShort Source signum :: CUShort -> CUShort Source fromInteger :: Integer -> CUShort Source | |
| Num CShort | |
Определено в Foreign.C.Types | |
| Num CUChar | |
Определено в Foreign.C.Types | |
| Num CSChar | |
Определено в Foreign.C.Types | |
| Num CChar | |
| Num Fd | |
| Num CNfds | |
Определено в System.Posix.Types | |
| Num CSocklen | |
Определено в System.Posix.Types Методы(+) :: CSocklen -> CSocklen -> CSocklen Source (-) :: CSocklen -> CSocklen -> CSocklen Source (*) :: CSocklen -> CSocklen -> CSocklen Source negate :: CSocklen -> CSocklen Source abs :: CSocklen -> CSocklen Source signum :: CSocklen -> CSocklen Source fromInteger :: Integer -> CSocklen Source | |
| Num CKey | |
| Num CId | |
| Num CFsFilCnt | |
Определено в System.Posix.Types Краткое описание методов(+) :: CBlkCnt -> CBlkCnt -> CBlkCnt Source (-) :: CBlkCnt -> CBlkCnt -> CBlkCnt Source (*) :: CBlkCnt -> CBlkCnt -> CBlkCnt Source negate :: CBlkCnt -> CBlkCnt Source abs :: CBlkCnt -> CBlkCnt Source signum :: CBlkCnt -> CBlkCnt Source fromInteger :: Integer -> CBlkCnt Source | |
| Num CBlkSize | |
Определено в System.Posix.Types Краткое описание методов(+) :: CBlkSize -> CBlkSize -> CBlkSize Source (-) :: CBlkSize -> CBlkSize -> CBlkSize Source (*) :: CBlkSize -> CBlkSize -> CBlkSize Source negate :: CBlkSize -> CBlkSize Source abs :: CBlkSize -> CBlkSize Source signum :: CBlkSize -> CBlkSize Source fromInteger :: Integer -> CBlkSize Source | |
| Num CRLim | |
Определено в System.Posix.Types | |
| Num CTcflag | |
Определено в System.Posix.Types Краткое описание методов(+) :: CTcflag -> CTcflag -> CTcflag Source (-) :: CTcflag -> CTcflag -> CTcflag Source (*) :: CTcflag -> CTcflag -> CTcflag Source negate :: CTcflag -> CTcflag Source abs :: CTcflag -> CTcflag Source signum :: CTcflag -> CTcflag Source fromInteger :: Integer -> CTcflag Source | |
| Num CSpeed | |
Определено в System.Posix.Types | |
| Num CCc | |
| Num CUid | |
Определено в System.Posix.Types | |
| Num CNlink | |
Определено в System.Posix.Types Краткое описание методов(+) :: CNlink -> CNlink -> CNlink Источник (-) :: CNlink -> CNlink -> CNlink Источник (*) :: CNlink -> CNlink -> CNlink Источник negate :: CNlink -> CNlink Источник abs :: CNlink -> CNlink Источник signum :: CNlink -> CNlink Источник fromInteger :: Integer -> CNlink Источник | |
| Num CGid | |
Определено в System.Posix.Types | |
| Num CSsize | |
Определено в System.Posix.Types | |
| Num CIno | |
| Num CDev | |
| Integral a => Num (Ratio a) | С версии: base-2.0.1 |
Определено в GHC.Real Краткое описание методов(+) :: Ratio a -> Ratio a -> Ratio a Source (-) :: Ratio a -> Ratio a -> Ratio a Source (*) :: Ratio a -> Ratio a -> Ratio a Source negate :: Ratio a -> Ratio a Source abs :: Ratio a -> Ratio a Source signum :: Ratio a -> Ratio a Source fromInteger :: Integer -> Ratio a Source | |
| Num a => Num (Down a) | Since: base-4.11.0.0 |
| Num a => Num (Product a) | Since: base-4.7.0.0 |
Defined in Data.Semigroup.Internal Методы(+) :: Product a -> Product a -> Product a Source (-) :: Product a -> Product a -> Product a Source (*) :: Product a -> Product a -> Product a Source negate :: Product a -> Product a Source abs :: Product a -> Product a Source signum :: Product a -> Product a Source fromInteger :: Integer -> Product a Source | |
| Num a => Num (Sum a) | Since: base-4.7.0.0 |
| Num a => Num (Identity a) | Since: base-4.9.0.0 |
Определено в Data.Functor.Identity Краткое описание методов(+) :: Identity a -> Identity a -> Identity a Source (-) :: Identity a -> Identity a -> Identity a Source (*) :: Identity a -> Identity a -> Identity a Source negate :: Identity a -> Identity a Source abs :: Identity a -> Identity a Source signum :: Identity a -> Identity a Source fromInteger :: Integer -> Identity a Source | |
| Num a => Num (Max a) | Since: base-4.9.0.0 |
| Num a => Num (Min a) | Since: base-4.9.0.0 |
| RealFloat a => Num (Complex a) | Since: base-2.1 |
Определено в Data.Complex Методы(+) :: Complex a -> Complex a -> Complex a Source (-) :: Complex a -> Complex a -> Complex a Source (*) :: Complex a -> Complex a -> Complex a Source negate :: Complex a -> Complex a Source abs :: Complex a -> Complex a Source signum :: Complex a -> Complex a Source fromInteger :: Integer -> Complex a Source | |
| Num a => Num (Op a b) | |
Определено в Data.Functor.Contravariant | |
| HasResolution a => Num (Fixed a) | С версии: base-2.1 |
Определено в Data.Fixed | |
| Num (f a) => Num (Alt f a) | С версии: base-4.8.0.0 |
Определено в Data.Semigroup.Internal Краткое описание методов(+) :: Alt f a -> Alt f a -> Alt f a Источник (-) :: Alt f a -> Alt f a -> Alt f a Источник (*) :: Alt f a -> Alt f a -> Alt f a Источник negate :: Alt f a -> Alt f a Источник abs :: Alt f a -> Alt f a Источник signum :: Alt f a -> Alt f a Источник fromInteger :: Integer -> Alt f a Источник | |
| (Applicative f, Num a) => Num (Ap f a) | С версии: base-4.12.0.0 |
Определено в Data.Monoid Краткое описание методов(+) :: Ap f a -> Ap f a -> Ap f a Источник (-) :: Ap f a -> Ap f a -> Ap f a Источник (*) :: Ap f a -> Ap f a -> Ap f a Источник negate :: Ap f a -> Ap f a Источник abs :: Ap f a -> Ap f a Источник signum :: Ap f a -> Ap f a Источник fromInteger :: Integer -> Ap f a Источник | |
| Num a => Num (Const a b) | С версии: base-4.9.0.0 |
Определено в Data.Functor.Const Краткое описание методов(+) :: Const a b -> Const a b -> Const a b Источник (-) :: Const a b -> Const a b -> Const a b Источник (*) :: Const a b -> Const a b -> Const a b Источник negate :: Const a b -> Const a b Источник abs :: Const a b -> Const a b Источник signum :: Const a b -> Const a b Источник fromInteger :: Integer -> Const a b Источник | |
subtract :: Num a => a -> a -> a Источник
Поскольку - обрабатывается специальным образом в грамматике Haskell, (- e) не является секцией, а применением префиксного отрицания. Однако, (subtract exp) эквивалентно недопустимой секции.
module GHC.Integer
module GHC.Natural
© 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-Num.html