numeric-prelude-0.0.5: An experimental alternative hierarchy of numeric type classesSource codeContentsIndex
Number.NonNegativeChunky
PortabilityHaskell 98
Stabilitystable
Maintainerhaskell@henning-thielemann.de
Description
A lazy number type, which is a generalization of lazy Peano numbers. Comparisons can be made lazy and thus computations are possible which are impossible with strict number types, e.g. you can compute let y = min (1+y) 2 in y. You can even work with infinite values. However, depending on the granularity, the memory consumption is higher than that for strict number types. This number type is of interest for the merge operation of event lists, which allows for co-recursive merges.
Synopsis
data T a
fromChunks :: C a => [a] -> T a
fromNumber :: C a => a -> T a
toNumber :: C a => T a -> a
fromChunky98 :: (C a, C a) => T a -> T a
toChunky98 :: (C a, C a) => T a -> T a
normalize :: C a => T a -> T a
isNull :: C a => T a -> Bool
isPositive :: C a => T a -> Bool
Documentation
data T a Source

A chunky non-negative number is a list of non-negative numbers. It represents the sum of the list elements. It is possible to represent a finite number with infinitely many chunks by using an infinite number of zeros.

Note the following problems:

Addition is commutative only for finite representations. E.g. let y = min (1+y) 2 in y is defined, let y = min (y+1) 2 in y is not.

The type is equivalent to Numeric.NonNegative.Chunky.

show/hide Instances
C a => Eq (T a)
(C a, Eq a, Show a, C a) => Fractional (T a)
(C a, Eq a, Show a, C a) => Num (T a)
C a => Ord (T a)
Show a => Show (T a)
(C a, Arbitrary a) => Arbitrary (T a)
C a => C (T a)
(C a, C a) => C (T a)
C a => C (T a)
(Ord a, C a, C a) => C (T a)
(C a, C a, C a) => C (T a)
C a => C (T a)
(C a, C a) => C (T a)
(C a, C a) => C (T a)
(C a, C a) => C (T a)
fromChunks :: C a => [a] -> T aSource
fromNumber :: C a => a -> T aSource
toNumber :: C a => T a -> aSource
fromChunky98 :: (C a, C a) => T a -> T aSource
toChunky98 :: (C a, C a) => T a -> T aSource
normalize :: C a => T a -> T aSource
Remove zero chunks.
isNull :: C a => T a -> BoolSource
isPositive :: C a => T a -> BoolSource
Produced by Haddock version 2.6.0