- data Queue a
- (<>) :: Queue a -> Queue a -> Queue a
- isEmpty :: Queue a -> Bool
- length :: Queue a -> Int
- head :: Queue a -> a
- tail :: Queue a -> Queue a
- front :: Queue a -> Maybe (a, Queue a)
- empty :: Queue a
- single :: a -> Queue a
- insert :: a -> Queue a -> Queue a
- append :: Queue a -> Queue a -> Queue a
- filter :: (a -> Bool) -> Queue a -> Queue a
- partition :: (a -> Bool) -> Queue a -> (Queue a, Queue a)
- foldL :: (b -> a -> b) -> b -> Queue a -> b
- foldR :: (a -> b -> b) -> b -> Queue a -> b
- elems :: Queue a -> [a]
- toList :: Queue a -> [a]
- fromList :: [a] -> Queue a
Queue type
Operators
Query
O(1). The element in front of the queue. Raises an error when the queue is empty.
tail :: Queue a -> Queue aSource
O(1). The tail of the queue. Raises an error when the queue is empty.
Construction
Filter
partition :: (a -> Bool) -> Queue a -> (Queue a, Queue a)Source
O(n). Partition the elements according to some predicate.
Fold
foldL :: (b -> a -> b) -> b -> Queue a -> bSource
O(n). Fold over the elements from left to right (ie. head to tail).
foldR :: (a -> b -> b) -> b -> Queue a -> bSource
O(n). Fold over the elements from right to left (ie. tail to head).