Safe Haskell | Safe-Infered |
---|
Data.HashMap.Array
Contents
Description
Zero based arrays.
Note that no bounds checking are performed.
- data Array a
- data MArray s a
- new :: Int -> a -> ST s (MArray s a)
- new_ :: Int -> ST s (MArray s a)
- singleton :: a -> Array a
- singleton' :: a -> ST s (Array a)
- pair :: a -> a -> Array a
- length :: Array a -> Int
- lengthM :: MArray s a -> Int
- read :: MArray s a -> Int -> ST s a
- write :: MArray s a -> Int -> a -> ST s ()
- index :: Array a -> Int -> a
- index_ :: Array a -> Int -> ST s a
- indexM_ :: MArray s a -> Int -> ST s a
- update :: Array e -> Int -> e -> Array e
- update' :: Array e -> Int -> e -> ST s (Array e)
- updateWith :: Array e -> Int -> (e -> e) -> Array e
- unsafeUpdate' :: Array e -> Int -> e -> ST s ()
- insert :: Array e -> Int -> e -> Array e
- insert' :: Array e -> Int -> e -> ST s (Array e)
- delete :: Array e -> Int -> Array e
- delete' :: Array e -> Int -> ST s (Array e)
- unsafeFreeze :: MArray s a -> ST s (Array a)
- unsafeThaw :: Array a -> ST s (MArray s a)
- run :: (forall s. ST s (MArray s e)) -> Array e
- run2 :: (forall s. ST s (MArray s e, a)) -> (Array e, a)
- copy :: Array e -> Int -> MArray s e -> Int -> Int -> ST s ()
- copyM :: MArray s e -> Int -> MArray s e -> Int -> Int -> ST s ()
- foldl' :: (b -> a -> b) -> b -> Array a -> b
- foldr :: (a -> b -> b) -> b -> Array a -> b
- thaw :: Array e -> Int -> Int -> ST s (MArray s e)
- map :: (a -> b) -> Array a -> Array b
- map' :: (a -> b) -> Array a -> Array b
- traverse :: Applicative f => (a -> f b) -> Array a -> f (Array b)
- filter :: (a -> Bool) -> Array a -> Array a
Documentation
Creation
new :: Int -> a -> ST s (MArray s a)Source
Create a new mutable array of specified size, in the specified state thread, with each element containing the specified initial value.
singleton' :: a -> ST s (Array a)Source
Basic interface
update :: Array e -> Int -> e -> Array eSource
O(n) Update the element at the given position in this array.
update' :: Array e -> Int -> e -> ST s (Array e)Source
O(n) Update the element at the given position in this array.
updateWith :: Array e -> Int -> (e -> e) -> Array eSource
O(n) Update the element at the given positio in this array, by applying a function to it. Evaluates the element to WHNF before inserting it into the array.
unsafeUpdate' :: Array e -> Int -> e -> ST s ()Source
O(1) Update the element at the given position in this array, without copying.
insert :: Array e -> Int -> e -> Array eSource
O(n) Insert an element at the given position in this array, increasing its size by one.
insert' :: Array e -> Int -> e -> ST s (Array e)Source
O(n) Insert an element at the given position in this array, increasing its size by one.
delete :: Array e -> Int -> Array eSource
O(n) Delete an element at the given position in this array, decreasing its size by one.
delete' :: Array e -> Int -> ST s (Array e)Source
O(n) Delete an element at the given position in this array, decreasing its size by one.
unsafeFreeze :: MArray s a -> ST s (Array a)Source
unsafeThaw :: Array a -> ST s (MArray s a)Source
copy :: Array e -> Int -> MArray s e -> Int -> Int -> ST s ()Source
Unsafely copy the elements of an array. Array bounds are not checked.
copyM :: MArray s e -> Int -> MArray s e -> Int -> Int -> ST s ()Source
Unsafely copy the elements of an array. Array bounds are not checked.
Folds
traverse :: Applicative f => (a -> f b) -> Array a -> f (Array b)Source