Deques - Factor Documentation (original) (raw)
The deques vocabulary implements the deque data structure which has constant-time insertion and removal of elements at both ends.
Deques must be instances of a mixin class:
Deques must implement a protocol.
peek-back ( deque -- obj )
deque-empty? ( deque -- ? )
deque-member? ( value deque -- ? )
push-front* ( obj deque -- node )
push-back* ( obj deque -- node )
pop-front* ( deque -- )
pop-back* ( deque -- )
clear-deque ( deque -- )
Working with node objects output by push-front* and push-back*:
Utility operations built in terms of the above:
push-all-front ( seq deque -- )
push-back ( obj deque -- )
push-all-back ( seq deque -- )
pop-front ( deque -- obj )
pop-back ( deque -- obj )
slurp-deque ( ... deque quot: ( ... obj -- ... ) -- ... )
When using a deque as a queue, the convention is to queue elements with push-front and deque them with pop-back.