Spec-Zone.ru › Haskell 8

GHC.Natural

Copyright (C) 2014 Herbert Valerio Riedel
(C) 2011 Edward Kmett
License see libraries/base/LICENSE
Maintainer libraries@haskell.org
Stability internal
Portability non-portable (GHC Extensions)
Safe Haskell None
Language Haskell2010

Содержание

  • Тип числа Natural
  • Арифметика
  • Биты
  • Преобразования
  • Модульная арифметика

Описание

Тип числа Natural произвольной точности.

Примечание: Это внутренний модуль GHC с API, который может быть изменен. Рекомендуется использовать модуль Numeric.Natural для импорта типа Natural.

С версии: base-4.8.0.0

Тип натурального числа

Предупреждение: Внутренняя реализация Natural (т.е. какие конструкторы доступны) зависит от используемого бэкэнда Integer!

data Natural Source

Тип, представляющий целые неотрицательные числа произвольной точности.

>>> 2^100 :: Natural
1267650600228229401496703205376

Операции, результат которых был бы отрицательным throw (Underflow :: ArithException),

>>> -1 :: Natural
*** Exception: arithmetic underflow

С версии: base-4.8.0.0

Конструкторы

NatS# GmpLimb#

в [0, maxBound::Word]

NatJ# !BigNat

в ]maxBound::Word, +inf[

Инвариант: NatJ# используется только если значение не помещается в конструктор NatS#. Примечание: Порядок конструкторов *должен* совпадать с отношением Ord

Экземпляры
Подробности о экземплярах
Enum Natural

С версии: base-4.8.0.0

Подробности о экземпляре

Определено в GHC.Enum

Методы

succ :: Natural -> Natural Source

pred :: Natural -> Natural Source

toEnum :: Int -> Natural Source

fromEnum :: Natural -> Int Source

enumFrom :: Natural -> [Natural] Source

enumFromThen :: Natural -> Natural -> [Natural] Source

enumFromTo :: Natural -> Natural -> [Natural] Source

enumFromThenTo :: Natural -> Natural -> Natural -> [Natural] Source

Eq Natural

С версии: base-4.8.0.0

Подробности о экземпляре

Определено в GHC.Natural

Методы

(==) :: Natural -> Natural -> Bool Source

(/=) :: Natural -> Natural -> Bool Source

Integral Natural

С версии: base-4.8.0.0

Подробности о экземпляре

Определено в GHC.Real

Методы

quot :: Natural -> Natural -> Natural Source

rem :: Natural -> Natural -> Natural Source

div :: Natural -> Natural -> Natural Source

mod :: Natural -> Natural -> Natural Source

quotRem :: Natural -> Natural -> (Natural, Natural) Source

divMod :: Natural -> Natural -> (Natural, Natural) Source

toInteger :: Natural -> Integer Source

Data Natural

С версии: base-4.8.0.0

Подробности экземпляра

Определено в Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Natural -> c Natural Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Natural Исходный код

toConstr :: Natural -> Constr Исходный код

dataTypeOf :: Natural -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Natural) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Natural) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Natural -> Natural Исходный код

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Natural -> r Исходный код

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Natural -> r Исходный код

gmapQ :: (forall d. Data d => d -> u) -> Natural -> [u] Исходный код

gmapQi :: Int -> (forall d. Data d => d -> u) -> Natural -> u Исходный код

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Natural -> m Natural Исходный код

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Natural -> m Natural Исходный код

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Natural -> m Natural Исходный код

Num Natural

Обратите внимание, что экземпляр Natural Num не является кольцом: нет элемента, кроме 0, имеющего аддитивную обратную величину. Однако это полукольцо.

С версии: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Num

Методы

(+) :: Natural -> Natural -> Natural Исходный код

(-) :: Natural -> Natural -> Natural Исходный код

(*) :: Natural -> Natural -> Natural Исходный код

negate :: Natural -> Natural Исходный код

abs :: Natural -> Natural Исходный код

signum :: Natural -> Natural Исходный код

fromInteger :: Integer -> Natural Исходный код

Ord Natural

С версии: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Natural

Методы

compare :: Natural -> Natural -> Ordering Исходный код

(<) :: Natural -> Natural -> Bool Исходный код

(<=) :: Natural -> Natural -> Bool Исходный код

(>) :: Natural -> Natural -> Bool Исходный код

(>=) :: Natural -> Natural -> Bool Исходный код

max :: Natural -> Natural -> Natural Исходный код

min :: Natural -> Natural -> Natural Исходный код

Read Natural

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Read

Методы

readsPrec :: Int -> ReadS Natural Исходный код

readList :: ReadS [Natural] Исходный код

readPrec :: ReadPrec Natural Исходный код

readListPrec :: ReadPrec [Natural] Исходный код

Real Natural

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Real

Методы

toRational :: Natural -> Rational Исходный код

Show Natural

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Show

Методы

showsPrec :: Int -> Natural -> ShowS Исходный код

show :: Natural -> String Исходный код

showList :: [Natural] -> ShowS Исходный код

Ix Natural

С момента: base-4.8.0.0

Подробности экземпляра

Определено в GHC.Ix

Методы

range :: (Natural, Natural) -> [Natural] Исходный код

index :: (Natural, Natural) -> Natural -> Int Исходный код

unsafeIndex :: (Natural, Natural) -> Natural -> Int Исходный код

inRange :: (Natural, Natural) -> Natural -> Bool Исходный код

rangeSize :: (Natural, Natural) -> Int Исходный код

unsafeRangeSize :: (Natural, Natural) -> Int Исходный код

Bits Natural

С момента: base-4.8.0

Instance details

Определено в Data.Bits

Методы

(.&.) :: Natural -> Natural -> Natural Source

(.|.) :: Natural -> Natural -> Natural Source

xor :: Natural -> Natural -> Natural Source

complement :: Natural -> Natural Source

shift :: Natural -> Int -> Natural Source

rotate :: Natural -> Int -> Natural Source

zeroBits :: Natural Source

bit :: Int -> Natural Source

setBit :: Natural -> Int -> Natural Source

clearBit :: Natural -> Int -> Natural Source

complementBit :: Natural -> Int -> Natural Source

testBit :: Natural -> Int -> Bool Source

bitSizeMaybe :: Natural -> Maybe Int Source

bitSize :: Natural -> Int Source

isSigned :: Natural -> Bool Source

shiftL :: Natural -> Int -> Natural Source

unsafeShiftL :: Natural -> Int -> Natural Source

shiftR :: Natural -> Int -> Natural Source

unsafeShiftR :: Natural -> Int -> Natural Source

rotateL :: Natural -> Int -> Natural Source

rotateR :: Natural -> Int -> Natural Source

popCount :: Natural -> Int Source

PrintfArg Natural

С версии: base-4.8.0.0

Instance details

Определено в Text.Printf

Методы

formatArg :: Natural -> FieldFormatter Source

parseFormat :: Natural -> ModifierParser Source

mkNatural Source

Аргументы

:: [Word]

значение, выраженное в 32-битных фрагментах, начиная с наименее значимого

-> Natural

Построение Natural значения из списка Word.

Эта функция используется GHC для построения Natural литералов.

isValidNatural :: Natural -> Bool Source

Проверить, удовлетворяются ли все внутренние инварианты Natural значением

Эта операция в основном полезна для тестовых наборов и/или кода, который строит Integer значения напрямую.

С версии: base-4.8.0.0

Арифметика

plusNatural :: Natural -> Natural -> Natural Source

Natural Сложение

minusNatural :: Natural -> Natural -> Natural Source

Natural вычитание. Может throw Underflow.

minusNaturalMaybe :: Natural -> Natural -> Maybe Natural Source

Natural операция вычитания. Возвращает Nothing при неположительных результатах.

Since: base-4.8.0.0

timesNatural :: Natural -> Natural -> Natural Source

Natural умножение

negateNatural :: Natural -> Natural Source

signumNatural :: Natural -> Natural Source

quotRemNatural :: Natural -> Natural -> (Natural, Natural) Source

quotNatural :: Natural -> Natural -> Natural Source

remNatural :: Natural -> Natural -> Natural Source

gcdNatural :: Natural -> Natural -> Natural Source

Вычислить наибольший общий делитель.

lcmNatural :: Natural -> Natural -> Natural Source

Вычислить наименьшее общее кратное.

Биты

andNatural :: Natural -> Natural -> Natural Source

orNatural :: Natural -> Natural -> Natural Source

xorNatural :: Natural -> Natural -> Natural Source

bitNatural :: Int# -> Natural Source

testBitNatural :: Natural -> Int -> Bool Source

popCountNatural :: Natural -> Int Source

shiftLNatural :: Natural -> Int -> Natural Source

shiftRNatural :: Natural -> Int -> Natural Source

Преобразования

naturalToInteger :: Natural -> Integer Source

@since 4.X.0.0

naturalToWord :: Natural -> Word Source

naturalToInt :: Natural -> Int Source

naturalFromInteger :: Integer -> Natural Source

Since: base-4.10.0.0

wordToNatural :: Word -> Natural Source

Создать Natural из значения Word.

Since: base-4.8.0.0

intToNatural :: Int -> Natural Source

Преобразовать Int в Natural. Бросает Underflow при передаче отрицательного Int.

naturalToWordMaybe :: Natural -> Maybe Word Source

Попытка приведения типа Natural к типу Word value. Возвращает Nothing если значение не помещается в Word.

Since: base-4.8.0.0

wordToNatural# :: Word# -> Natural Source

Преобразование Word# в Natural

Встроенное правило гарантирует, что применения этой функции к литералам Word# поднимаются в литералы Natural.

wordToNaturalBase :: Word# -> Natural Source

Преобразование Word# в Natural

В базовом режиме мы не можем использовать wordToNatural# так как встроенные правила преобразуют некоторые из них в литералы Natural. Используйте эту функцию вместо этого.

Модулярная арифметика

powModNatural :: Natural -> Natural -> Natural -> Natural Source

"powModNatural b e m" вычисляет основание b в степени показателя e по модулю m.

С момента: base-4.8.0.0

© 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-Natural.html

Spec-Zone.ru

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