The pettomato-deque Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The pettomato-deque Reference Manual

This is the pettomato-deque Reference Manual, version 0.1.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 05:34:21 2022 GMT+0.

Table of Contents


1 Introduction

This package contains implementations of double-ended queues (aka,
deques). See: http://en.wikipedia.org/wiki/Deque

deque is a standard double-ended queue. You can push and pop from both
ends. Other features include indexing elements from their relative
position inside the deque, iterating through the elements, and
converting the deque to a list.

ideque is a specialized deque that keeps track of the indices of the
front and back of the queue so that we may reference items by an
absolute, rather than relative, index. The idea is that you can add
elements to an ideque (push-back), pop elements off the front
(pop-front), and still reference the nth item added directly by n. It
probably doesn't make much sense to use push-front with an ideque, but
you can.

Please see the docstrings for the exported symbols for more
information.

--------------------------------
Acknowledgments

This implementation was originally based off of the deque
implementation in the arnesi package:
http://common-lisp.net/project/bese/repos/arnesi_dev/src/queue.lisp


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 pettomato-deque

A set of double-ended queue implementations.

Author

Austin Haas <austin@pettomato.com>

License

MIT

Version

0.1.1

Source

pettomato-deque.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 pettomato-deque/src

Source

pettomato-deque.asd.

Parent Component

pettomato-deque (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


4.1.1 pettomato-deque/pettomato-deque.asd

Source

pettomato-deque.asd.

Parent Component

pettomato-deque (system).

ASDF Systems

pettomato-deque.


4.1.2 pettomato-deque/src/package.lisp

Source

pettomato-deque.asd.

Parent Component

src (module).

Packages

pettomato-deque.


4.1.3 pettomato-deque/src/deque.lisp

Dependency

package.lisp (file).

Source

pettomato-deque.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.4 pettomato-deque/src/ideque.lisp

Dependency

deque.lisp (file).

Source

pettomato-deque.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 pettomato-deque

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


6.1.1 Macros

Macro: do-all-elements ((element deque) &body body)

Iterate through deque in the order that pop-front would return elements, and bind each element to element in body. element is bound using a symbol-macrolet so that the value referenced by element can be changed using setf.

Package

pettomato-deque.

Source

deque.lisp.


6.1.2 Ordinary functions

Function: deque->list (deque)

Returns the elements of the queue as a list. The original queue is not modified.

Package

pettomato-deque.

Source

deque.lisp.


6.1.3 Generic functions

Generic Function: element-count (queue)

Returns the number of elements currently in the queue.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: element-count ((deque ideque))
Source

ideque.lisp.

Method: element-count ((deque deque))
Generic Function: empty-p (queue)

Returns a generalized boolean: true if the queue is empty, otherwise false.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: empty-p ((deque deque))
Generic Function: expire-front-to (deque index)

Move front up to index. It is permissible for index
to be greater than max-index; the queue will be cleared and min-index and max-index will be set to index. Returns deque.

Package

pettomato-deque.

Source

ideque.lisp.

Methods
Method: expire-front-to ((deque ideque) index)
Generic Function: grow-back-to (deque index value)

Ensure that deque is large enough to be indexed at
index. If not, value will be pushed on until it is. If value is a function, the function will be called and the returned value will be used. Returns deque.

Package

pettomato-deque.

Source

ideque.lisp.

Methods
Method: grow-back-to ((deque ideque) index value)
Generic Function: nth-element (queue index)

Accesses the element of the queue specified by index.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: nth-element ((deque ideque) index)
Source

ideque.lisp.

Method: nth-element ((deque deque) index)
Generic Function: (setf nth-element) (queue index)
Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: (setf nth-element) ((deque ideque) index)
Source

ideque.lisp.

Method: (setf nth-element) ((deque deque) index)
Generic Function: peek-back (queue)

Returns the element at the back of the queue without removing it from the queue.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: peek-back ((deque deque))
Generic Function: peek-front (queue)

Returns the element at the front of the queue without removing it from the queue.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: peek-front ((deque deque))
Generic Function: pop-back (queue)

Removes the element at the back of the queue and returns it.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: pop-back :after ((deque ideque))
Source

ideque.lisp.

Method: pop-back ((deque deque))
Generic Function: pop-front (queue)

Removes the element at the front of the queue and returns it.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: pop-front :after ((deque ideque))
Source

ideque.lisp.

Method: pop-front ((deque deque))
Generic Function: push-back (queue value)

Push value on to the back of queue. Returns queue.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: push-back :after ((deque ideque) value)
Source

ideque.lisp.

Method: push-back ((deque deque) value)
Generic Function: push-front (queue value)

Push value on to the front of queue. Returns queue.

Package

pettomato-deque.

Source

deque.lisp.

Methods
Method: push-front :after ((deque ideque) value)
Source

ideque.lisp.

Method: push-front ((deque deque) value)

6.1.4 Standalone methods

Method: initialize-instance :after ((deque deque) &key size element-type &allow-other-keys)
Source

deque.lisp.

Method: print-object ((deque deque) stream)
Source

deque.lisp.


6.1.5 Classes

Class: deque

A double ended queue.

Package

pettomato-deque.

Source

deque.lisp.

Direct subclasses

ideque.

Direct methods
Direct slots
Slot: head-index
Readers

head-index.

Writers

(setf head-index).

Slot: tail-index
Readers

tail-index.

Writers

(setf tail-index).

Slot: buffer
Readers

buffer.

Writers

(setf buffer).

Class: ideque

A double ended queue that allows indexing.

Package

pettomato-deque.

Source

ideque.lisp.

Direct superclasses

deque.

Direct methods
Direct slots
Slot: min-index
Initform

0

Readers

min-index.

Writers

(setf min-index).

Slot: max-index
Initform

0

Readers

max-index.

Writers

(setf max-index).


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Macros

Macro: decf-mod (place divisor)
Package

pettomato-deque.

Source

deque.lisp.

Macro: incf-mod (place divisor)
Package

pettomato-deque.

Source

deque.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.2 Ordinary functions

Function: deque-full-p (deque)
Package

pettomato-deque.

Source

deque.lisp.

Function: grow-deque (deque)
Package

pettomato-deque.

Source

deque.lisp.

Function: move-head-back (deque)
Package

pettomato-deque.

Source

deque.lisp.

Function: move-head-forward (deque)
Package

pettomato-deque.

Source

deque.lisp.

Function: move-tail-back (deque)
Package

pettomato-deque.

Source

deque.lisp.

Function: move-tail-forward (deque)
Package

pettomato-deque.

Source

deque.lisp.


6.2.3 Generic functions

Generic Reader: buffer (object)
Package

pettomato-deque.

Methods
Reader Method: buffer ((deque deque))

automatically generated reader method

Source

deque.lisp.

Target Slot

buffer.

Generic Writer: (setf buffer) (object)
Package

pettomato-deque.

Methods
Writer Method: (setf buffer) ((deque deque))

automatically generated writer method

Source

deque.lisp.

Target Slot

buffer.

Generic Reader: head-index (object)
Package

pettomato-deque.

Methods
Reader Method: head-index ((deque deque))

automatically generated reader method

Source

deque.lisp.

Target Slot

head-index.

Generic Writer: (setf head-index) (object)
Package

pettomato-deque.

Methods
Writer Method: (setf head-index) ((deque deque))

automatically generated writer method

Source

deque.lisp.

Target Slot

head-index.

Generic Reader: max-index (object)
Package

pettomato-deque.

Methods
Reader Method: max-index ((ideque ideque))

automatically generated reader method

Source

ideque.lisp.

Target Slot

max-index.

Generic Writer: (setf max-index) (object)
Package

pettomato-deque.

Methods
Writer Method: (setf max-index) ((ideque ideque))

automatically generated writer method

Source

ideque.lisp.

Target Slot

max-index.

Generic Reader: min-index (object)
Package

pettomato-deque.

Methods
Reader Method: min-index ((ideque ideque))

automatically generated reader method

Source

ideque.lisp.

Target Slot

min-index.

Generic Writer: (setf min-index) (object)
Package

pettomato-deque.

Methods
Writer Method: (setf min-index) ((ideque ideque))

automatically generated writer method

Source

ideque.lisp.

Target Slot

min-index.

Generic Reader: tail-index (object)
Package

pettomato-deque.

Methods
Reader Method: tail-index ((deque deque))

automatically generated reader method

Source

deque.lisp.

Target Slot

tail-index.

Generic Writer: (setf tail-index) (object)
Package

pettomato-deque.

Methods
Writer Method: (setf tail-index) ((deque deque))

automatically generated writer method

Source

deque.lisp.

Target Slot

tail-index.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
B   D   E   F   G   H   I   M   N   P   T  
Index Entry  Section

(
(setf buffer): Private generic functions
(setf buffer): Private generic functions
(setf head-index): Private generic functions
(setf head-index): Private generic functions
(setf max-index): Private generic functions
(setf max-index): Private generic functions
(setf min-index): Private generic functions
(setf min-index): Private generic functions
(setf nth-element): Public generic functions
(setf nth-element): Public generic functions
(setf nth-element): Public generic functions
(setf tail-index): Private generic functions
(setf tail-index): Private generic functions

B
buffer: Private generic functions
buffer: Private generic functions

D
decf-mod: Private macros
deque->list: Public ordinary functions
deque-full-p: Private ordinary functions
do-all-elements: Public macros

E
element-count: Public generic functions
element-count: Public generic functions
element-count: Public generic functions
empty-p: Public generic functions
empty-p: Public generic functions
expire-front-to: Public generic functions
expire-front-to: Public generic functions

F
Function, deque->list: Public ordinary functions
Function, deque-full-p: Private ordinary functions
Function, grow-deque: Private ordinary functions
Function, move-head-back: Private ordinary functions
Function, move-head-forward: Private ordinary functions
Function, move-tail-back: Private ordinary functions
Function, move-tail-forward: Private ordinary functions

G
Generic Function, (setf buffer): Private generic functions
Generic Function, (setf head-index): Private generic functions
Generic Function, (setf max-index): Private generic functions
Generic Function, (setf min-index): Private generic functions
Generic Function, (setf nth-element): Public generic functions
Generic Function, (setf tail-index): Private generic functions
Generic Function, buffer: Private generic functions
Generic Function, element-count: Public generic functions
Generic Function, empty-p: Public generic functions
Generic Function, expire-front-to: Public generic functions
Generic Function, grow-back-to: Public generic functions
Generic Function, head-index: Private generic functions
Generic Function, max-index: Private generic functions
Generic Function, min-index: Private generic functions
Generic Function, nth-element: Public generic functions
Generic Function, peek-back: Public generic functions
Generic Function, peek-front: Public generic functions
Generic Function, pop-back: Public generic functions
Generic Function, pop-front: Public generic functions
Generic Function, push-back: Public generic functions
Generic Function, push-front: Public generic functions
Generic Function, tail-index: Private generic functions
grow-back-to: Public generic functions
grow-back-to: Public generic functions
grow-deque: Private ordinary functions

H
head-index: Private generic functions
head-index: Private generic functions

I
incf-mod: Private macros
initialize-instance: Public standalone methods

M
Macro, decf-mod: Private macros
Macro, do-all-elements: Public macros
Macro, incf-mod: Private macros
max-index: Private generic functions
max-index: Private generic functions
Method, (setf buffer): Private generic functions
Method, (setf head-index): Private generic functions
Method, (setf max-index): Private generic functions
Method, (setf min-index): Private generic functions
Method, (setf nth-element): Public generic functions
Method, (setf nth-element): Public generic functions
Method, (setf tail-index): Private generic functions
Method, buffer: Private generic functions
Method, element-count: Public generic functions
Method, element-count: Public generic functions
Method, empty-p: Public generic functions
Method, expire-front-to: Public generic functions
Method, grow-back-to: Public generic functions
Method, head-index: Private generic functions
Method, initialize-instance: Public standalone methods
Method, max-index: Private generic functions
Method, min-index: Private generic functions
Method, nth-element: Public generic functions
Method, nth-element: Public generic functions
Method, peek-back: Public generic functions
Method, peek-front: Public generic functions
Method, pop-back: Public generic functions
Method, pop-back: Public generic functions
Method, pop-front: Public generic functions
Method, pop-front: Public generic functions
Method, print-object: Public standalone methods
Method, push-back: Public generic functions
Method, push-back: Public generic functions
Method, push-front: Public generic functions
Method, push-front: Public generic functions
Method, tail-index: Private generic functions
min-index: Private generic functions
min-index: Private generic functions
move-head-back: Private ordinary functions
move-head-forward: Private ordinary functions
move-tail-back: Private ordinary functions
move-tail-forward: Private ordinary functions

N
nth-element: Public generic functions
nth-element: Public generic functions
nth-element: Public generic functions

P
peek-back: Public generic functions
peek-back: Public generic functions
peek-front: Public generic functions
peek-front: Public generic functions
pop-back: Public generic functions
pop-back: Public generic functions
pop-back: Public generic functions
pop-front: Public generic functions
pop-front: Public generic functions
pop-front: Public generic functions
print-object: Public standalone methods
push-back: Public generic functions
push-back: Public generic functions
push-back: Public generic functions
push-front: Public generic functions
push-front: Public generic functions
push-front: Public generic functions

T
tail-index: Private generic functions
tail-index: Private generic functions

Jump to:   (  
B   D   E   F   G   H   I   M   N   P   T