| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Deque.Strict
Description
Definitions of strict Deque.
The typical toList and fromList conversions are provided by means of
the Foldable and IsList instances.
Synopsis
- data Deque a
- fromLazy :: Deque a -> Deque a
- toLazy :: Deque a -> Deque a
- fromConsAndSnocLists :: [a] -> [a] -> Deque a
- cons :: a -> Deque a -> Deque a
- snoc :: a -> Deque a -> Deque a
- reverse :: Deque a -> Deque a
- shiftLeft :: Deque a -> Deque a
- shiftRight :: Deque a -> Deque a
- filter :: (a -> Bool) -> Deque a -> Deque a
- take :: Int -> Deque a -> Deque a
- drop :: Int -> Deque a -> Deque a
- takeWhile :: (a -> Bool) -> Deque a -> Deque a
- dropWhile :: (a -> Bool) -> Deque a -> Deque a
- span :: (a -> Bool) -> Deque a -> (Deque a, Deque a)
- uncons :: Deque a -> Maybe (a, Deque a)
- unsnoc :: Deque a -> Maybe (a, Deque a)
- null :: Deque a -> Bool
- head :: Deque a -> Maybe a
- last :: Deque a -> Maybe a
- tail :: Deque a -> Deque a
- init :: Deque a -> Deque a
Documentation
Strict double-ended queue (aka Dequeue or Deque) based on head-tail linked list.
Instances
| NFData1 Deque Source # | |||||
Defined in Deque.Strict.Defs | |||||
| Alternative Deque Source # | |||||
| Applicative Deque Source # | |||||
| Functor Deque Source # | |||||
| Monad Deque Source # | |||||
| MonadPlus Deque Source # | |||||
| MonadFail Deque Source # | |||||
Defined in Deque.Strict.Defs | |||||
| Foldable Deque Source # | |||||
Defined in Deque.Strict.Defs Methods fold :: Monoid m => Deque m -> m foldMap :: Monoid m => (a -> m) -> Deque a -> m foldMap' :: Monoid m => (a -> m) -> Deque a -> m foldr :: (a -> b -> b) -> b -> Deque a -> b foldr' :: (a -> b -> b) -> b -> Deque a -> b foldl :: (b -> a -> b) -> b -> Deque a -> b foldl' :: (b -> a -> b) -> b -> Deque a -> b foldr1 :: (a -> a -> a) -> Deque a -> a foldl1 :: (a -> a -> a) -> Deque a -> a elem :: Eq a => a -> Deque a -> Bool maximum :: Ord a => Deque a -> a | |||||
| Traversable Deque Source # | |||||
| Generic1 Deque Source # | |||||
Defined in Deque.Strict.Defs Associated Types
| |||||
| NFData a => NFData (Deque a) Source # | |||||
Defined in Deque.Strict.Defs | |||||
| Monoid (Deque a) Source # | |||||
| Semigroup (Deque a) Source # | |||||
| Generic (Deque a) Source # | |||||
Defined in Deque.Strict.Defs Associated Types
| |||||
| IsList (Deque a) Source # | |||||
| Show a => Show (Deque a) Source # | |||||
| Eq a => Eq (Deque a) Source # | |||||
| Hashable a => Hashable (Deque a) Source # | |||||
Defined in Deque.Strict.Defs | |||||
| type Rep1 Deque Source # | |||||
Defined in Deque.Strict.Defs type Rep1 Deque = D1 ('MetaData "Deque" "Deque.Strict.Defs" "deque-0.4.4.2-IdrLQGXKKdGKQulmi53dZo" 'False) (C1 ('MetaCons "Deque" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec1 List) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec1 List))) | |||||
| type Rep (Deque a) Source # | |||||
Defined in Deque.Strict.Defs type Rep (Deque a) = D1 ('MetaData "Deque" "Deque.Strict.Defs" "deque-0.4.4.2-IdrLQGXKKdGKQulmi53dZo" 'False) (C1 ('MetaCons "Deque" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (List a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (List a)))) | |||||
| type Item (Deque a) Source # | |||||
Defined in Deque.Strict.Defs type Item (Deque a) = a | |||||
fromConsAndSnocLists :: [a] -> [a] -> Deque a Source #
\(\mathcal{O}(n)\). Construct from cons and snoc lists.
shiftLeft :: Deque a -> Deque a Source #
\(\mathcal{O}(1)\), occasionally \(\mathcal{O}(n)\). Move the first element to the end.
λ toList . shiftLeft $ fromList [1,2,3] [2,3,1]
shiftRight :: Deque a -> Deque a Source #
\(\mathcal{O}(1)\), occasionally \(\mathcal{O}(n)\). Move the last element to the beginning.
λ toList . shiftRight $ fromList [1,2,3] [3,1,2]
filter :: (a -> Bool) -> Deque a -> Deque a Source #
\(\mathcal{O}(n)\). Leave only the elements satisfying the predicate.
take :: Int -> Deque a -> Deque a Source #
\(\mathcal{O}(n)\). Leave only the specified amount of first elements.
drop :: Int -> Deque a -> Deque a Source #
\(\mathcal{O}(n)\). Drop the specified amount of first elements.
takeWhile :: (a -> Bool) -> Deque a -> Deque a Source #
\(\mathcal{O}(n)\). Leave only the first elements satisfying the predicate.
dropWhile :: (a -> Bool) -> Deque a -> Deque a Source #
\(\mathcal{O}(n)\). Drop the first elements satisfying the predicate.
uncons :: Deque a -> Maybe (a, Deque a) Source #
\(\mathcal{O}(1)\), occasionally \(\mathcal{O}(n)\). Get the first element and deque without it if it's not empty.
unsnoc :: Deque a -> Maybe (a, Deque a) Source #
\(\mathcal{O}(1)\), occasionally \(\mathcal{O}(n)\). Get the last element and deque without it if it's not empty.
head :: Deque a -> Maybe a Source #
\(\mathcal{O}(1)\), occasionally \(\mathcal{O}(n)\). Get the first element if deque is not empty.
last :: Deque a -> Maybe a Source #
\(\mathcal{O}(1)\), occasionally \(\mathcal{O}(n)\). Get the last element if deque is not empty.