Safe Haskell | None |
---|---|
Language | Haskell2010 |
An imperative integer set written in Haskell.
See "Making Haskell as fast as C: Imperative programming in Haskell" for a more detailed discussion, https://deliquus.com/posts/2018-07-30-imperative-programming-in-haskell.html.
Synopsis
- data IntSet s
- type IOIntSet = IntSet (PrimState IO)
- intSetMinBound :: IntSet s -> Word64
- intSetMaxBound :: IntSet s -> Word64
- empty :: PrimMonad m => Word64 -> Word64 -> m (IntSet (PrimState m))
- insert :: PrimMonad m => IntSet (PrimState m) -> Word64 -> m ()
- member :: PrimMonad m => IntSet (PrimState m) -> Word64 -> m Bool
- notMember :: PrimMonad m => IntSet (PrimState m) -> Word64 -> m Bool
- delete :: PrimMonad m => IntSet (PrimState m) -> Word64 -> m ()
Types
A strict bounded integer set.
The set is very efficient when accessing elements within the bounds of the set. It uses a regular list to hold numbers outside of this range.
The type parameter s
is determined by the monad the data structure
lives in.
intSetMinBound :: IntSet s -> Word64 Source #
Get the minimum efficient bound of the integer set.
intSetMaxBound :: IntSet s -> Word64 Source #
Get the maximum efficient bound of the integer set.
Construction
:: PrimMonad m | |
=> Word64 | Minimum bound of the integer set |
-> Word64 | Maximum bound of the integer set |
-> m (IntSet (PrimState m)) |
Construct an empty integer set.
Insertion
insert :: PrimMonad m => IntSet (PrimState m) -> Word64 -> m () Source #
Insert the integer in a set.
Query
member :: PrimMonad m => IntSet (PrimState m) -> Word64 -> m Bool Source #
Is the integer in the set?
notMember :: PrimMonad m => IntSet (PrimState m) -> Word64 -> m Bool Source #
Is the integer not in the set?