| ||||||||||
| ||||||||||
| ||||||||||
Description | ||||||||||
Mutable boxed vectors. | ||||||||||
Synopsis | ||||||||||
Mutable boxed vectors | ||||||||||
data MVector s a | ||||||||||
| ||||||||||
type IOVector = MVector RealWorld | ||||||||||
type STVector s = MVector s | ||||||||||
Accessors | ||||||||||
Length information | ||||||||||
length :: MVector s a -> Int | ||||||||||
Length of the mutable vector. | ||||||||||
null :: MVector s a -> Bool | ||||||||||
Check whether the vector is empty | ||||||||||
Extracting subvectors | ||||||||||
slice :: Int -> Int -> MVector s a -> MVector s a | ||||||||||
Yield a part of the mutable vector without copying it. | ||||||||||
init :: MVector s a -> MVector s a | ||||||||||
tail :: MVector s a -> MVector s a | ||||||||||
take :: Int -> MVector s a -> MVector s a | ||||||||||
drop :: Int -> MVector s a -> MVector s a | ||||||||||
unsafeSlice | ||||||||||
| ||||||||||
unsafeInit :: MVector s a -> MVector s a | ||||||||||
unsafeTail :: MVector s a -> MVector s a | ||||||||||
unsafeTake :: Int -> MVector s a -> MVector s a | ||||||||||
unsafeDrop :: Int -> MVector s a -> MVector s a | ||||||||||
Overlapping | ||||||||||
overlaps :: MVector s a -> MVector s a -> Bool | ||||||||||
Construction | ||||||||||
Initialisation | ||||||||||
new :: PrimMonad m => Int -> m (MVector (PrimState m) a) | ||||||||||
Create a mutable vector of the given length. | ||||||||||
unsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) a) | ||||||||||
Create a mutable vector of the given length. The length is not checked. | ||||||||||
replicate :: PrimMonad m => Int -> a -> m (MVector (PrimState m) a) | ||||||||||
Create a mutable vector of the given length (0 if the length is negative) and fill it with an initial value. | ||||||||||
clone :: PrimMonad m => MVector (PrimState m) a -> m (MVector (PrimState m) a) | ||||||||||
Create a copy of a mutable vector. | ||||||||||
Growing | ||||||||||
grow :: PrimMonad m => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) | ||||||||||
Grow a vector by the given number of elements. The number must be positive. | ||||||||||
unsafeGrow :: PrimMonad m => MVector (PrimState m) a -> Int -> m (MVector (PrimState m) a) | ||||||||||
Grow a vector by the given number of elements. The number must be positive but this is not checked. | ||||||||||
Restricting memory usage | ||||||||||
clear :: PrimMonad m => MVector (PrimState m) a -> m () | ||||||||||
Reset all elements of the vector to some undefined value, clearing all references to external objects. This is usually a noop for unboxed vectors. | ||||||||||
Accessing individual elements | ||||||||||
read :: PrimMonad m => MVector (PrimState m) a -> Int -> m a | ||||||||||
Yield the element at the given position. | ||||||||||
write :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m () | ||||||||||
Replace the element at the given position. | ||||||||||
swap :: PrimMonad m => MVector (PrimState m) a -> Int -> Int -> m () | ||||||||||
Swap the elements at the given positions. | ||||||||||
unsafeRead :: PrimMonad m => MVector (PrimState m) a -> Int -> m a | ||||||||||
Yield the element at the given position. No bounds checks are performed. | ||||||||||
unsafeWrite :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m () | ||||||||||
Replace the element at the given position. No bounds checks are performed. | ||||||||||
unsafeSwap :: PrimMonad m => MVector (PrimState m) a -> Int -> Int -> m () | ||||||||||
Swap the elements at the given positions. No bounds checks are performed. | ||||||||||
Modifying vectors | ||||||||||
Filling and copying | ||||||||||
set :: PrimMonad m => MVector (PrimState m) a -> a -> m () | ||||||||||
Set all elements of the vector to the given value. | ||||||||||
copy :: PrimMonad m => MVector (PrimState m) a -> MVector (PrimState m) a -> m () | ||||||||||
Copy a vector. The two vectors must have the same length and may not overlap. | ||||||||||
unsafeCopy | ||||||||||
| ||||||||||
Deprecated operations | ||||||||||
newWith :: PrimMonad m => Int -> a -> m (MVector (PrimState m) a) | ||||||||||
DEPRECATED Use replicate instead | ||||||||||
unsafeNewWith :: PrimMonad m => Int -> a -> m (MVector (PrimState m) a) | ||||||||||
DEPRECATED Use replicate instead | ||||||||||
Produced by Haddock version 2.7.2 |