| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Deque
Synopsis
- data Deque a = Deque [a] [a]
- fromList :: [a] -> Deque a
- shiftLeft :: Deque a -> Deque a
- shiftRight :: Deque a -> Deque a
- cons :: a -> Deque a -> Deque a
- snoc :: a -> Deque a -> Deque a
- uncons :: Deque a -> Maybe (a, Deque a)
- unsnoc :: Deque a -> Maybe (a, Deque a)
- prepend :: Deque a -> Deque a -> Deque a
- reverse :: Deque a -> Deque a
- head :: Deque a -> Maybe a
- tail :: Deque a -> Deque a
- init :: Deque a -> Deque a
- last :: Deque a -> Maybe a
Documentation
Double-ended queue (aka Dequeue or Deque) based on the head-tail linked list.
Can be cycled. See shiftLeft and shiftRight.
Constructors
| Deque [a] [a] |
Instances
| Monad Deque Source # | |
| Functor Deque Source # | |
| Applicative Deque Source # | |
| Foldable Deque Source # | |
Defined in Deque Methods fold :: Monoid m => Deque m -> 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 # minimum :: Ord a => Deque a -> a # | |
| Traversable Deque Source # | |
| Alternative Deque Source # | |
| MonadPlus Deque Source # | |
| Eq a => Eq (Deque a) Source # | |
| Show a => Show (Deque a) Source # | |
| Semigroup (Deque a) Source # | |
| Monoid (Deque a) Source # | |
shiftLeft :: Deque a -> Deque a Source #
O(1), occasionally O(n).
λ toList . shiftLeft $ fromList [1,2,3] [2,3,1]
shiftRight :: Deque a -> Deque a Source #
O(1), occasionally O(n).
λ toList . shiftRight $ fromList [1,2,3] [3,1,2]