# QueueAggregate SΒΆ

- S: Type

A queue is a bag where the first item inserted is the first item extracted.

- =: (%, %) -> Boolean if S has BasicType
- from BasicType
- ~=: (%, %) -> Boolean if S has BasicType
- from BasicType

- back: % -> S
`back(q)`

returns the element at the back of the queue. The queue`q`

is unchanged by this operation. Error: if`q`

is empty.- coerce: % -> OutputForm if S has CoercibleTo OutputForm
- from CoercibleTo OutputForm
- construct: List S -> %
- from Collection S
- convert: % -> InputForm if S has ConvertibleTo InputForm
- from ConvertibleTo InputForm
- copy: % -> %
- from Aggregate
- count: (S, %) -> NonNegativeInteger if S has BasicType
- from HomogeneousAggregate S

- dequeue!: % -> S
`dequeue! s`

destructively extracts the first (top) element from queue`q`

. The element previously second in the queue becomes the first element. Error: if`q`

is empty.- empty: () -> %
- from Aggregate
- empty?: % -> Boolean
- from Aggregate

- enqueue!: (S, %) -> S
`enqueue!(x, q)`

inserts`x`

into the queue`q`

at the back end.- eq?: (%, %) -> Boolean
- from Aggregate
- eval: (%, Equation S) -> % if S has Evalable S and S has SetCategory
- from Evalable S
- eval: (%, List Equation S) -> % if S has Evalable S and S has SetCategory
- from Evalable S
- eval: (%, List S, List S) -> % if S has Evalable S and S has SetCategory
- from InnerEvalable(S, S)
- eval: (%, S, S) -> % if S has Evalable S and S has SetCategory
- from InnerEvalable(S, S)
- extract!: % -> S
- from BagAggregate S
- find: (S -> Boolean, %) -> Union(S, failed)
- from Collection S

- front: % -> S
`front(q)`

returns the element at the front of the queue. The queue`q`

is unchanged by this operation. Error: if`q`

is empty.- hash: % -> SingleInteger if S has SetCategory
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState if S has SetCategory
- from SetCategory
- insert!: (S, %) -> %
- from BagAggregate S
- inspect: % -> S
- from BagAggregate S
- latex: % -> String if S has SetCategory
- from SetCategory
- less?: (%, NonNegativeInteger) -> Boolean
- from Aggregate
- map: (S -> S, %) -> %
- from HomogeneousAggregate S
- member?: (S, %) -> Boolean if S has BasicType
- from HomogeneousAggregate S
- more?: (%, NonNegativeInteger) -> Boolean
- from Aggregate
- reduce: ((S, S) -> S, %, S, S) -> S if S has BasicType
- from Collection S
- remove: (S, %) -> % if S has BasicType
- from Collection S
- removeDuplicates: % -> % if S has BasicType
- from Collection S

- rotate!: % -> %
`rotate! q`

rotates queue`q`

so that the element at the front of the queue goes to the back of the queue. Note: rotate!`q`

is equivalent to enqueue!(dequeue!(`q`

)).- sample: %
- from Aggregate
- size?: (%, NonNegativeInteger) -> Boolean
- from Aggregate

CoercibleTo OutputForm if S has CoercibleTo OutputForm

ConvertibleTo InputForm if S has ConvertibleTo InputForm

Evalable S if S has Evalable S and S has SetCategory

InnerEvalable(S, S) if S has Evalable S and S has SetCategory

SetCategory if S has SetCategory