The anaphora Reference Manual

This is the anaphora Reference Manual, version 0.9.8, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 14:33:28 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 anaphora

The Anaphoric Macro Package from Hell

Maintainer

Sean Whitton <>

Author

Nikodemus Siivola <>

License

Public Domain

Version

0.9.8

Source

anaphora.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 anaphora/anaphora.asd

Source

anaphora.asd.

Parent Component

anaphora (system).

ASDF Systems

anaphora.


3.1.2 anaphora/packages.lisp

Source

anaphora.asd.

Parent Component

anaphora (system).

Packages

3.1.3 anaphora/early.lisp

Dependency

packages.lisp (file).

Source

anaphora.asd.

Parent Component

anaphora (system).

Internals

3.1.4 anaphora/symbolic.lisp

Dependency

early.lisp (file).

Source

anaphora.asd.

Parent Component

anaphora (system).

Internals

3.1.5 anaphora/anaphora.lisp

Dependency

symbolic.lisp (file).

Source

anaphora.asd.

Parent Component

anaphora (system).

Public Interface

4 Packages

Packages are listed by definition order.


4.1 anaphora-symbol

ANAPHORA-SYMBOL provides “symbolic anaphoric macros”, which bind forms
to IT via SYMBOL-MACROLET.

Examples:

(sor (gethash key table) (setf it default))

(asif (gethash key table)
(foo it) ; IT is a value bound by LET here
(setf it default)) ; IT is the GETHASH form bound by SYMBOL-MACROLET here

Source

packages.lisp.

Use List

4.2 anaphora-basic

ANAPHORA-BASIC provides all normal anaphoric constructs, which bind primary values to IT/SELF.

Source

packages.lisp.

Use List

4.3 anaphora

ANAPHORA provides a full complement of anaphoric macros. Subsets of the functionality provided by this package are exported from ANAPHORA-BASIC and ANAPHORA-SYMBOL.

Source

packages.lisp.

Use List

common-lisp.

Used By List
Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Macros

Macro: aand (first &rest rest)

Like AND, except binds the first argument to IT (via LET) for the scope of the rest of the arguments.

Package

anaphora.

Source

anaphora.lisp.

Macro: acase (keyform &body cases)

Like CASE, except binds the result of the keyform to IT (via LET) for the scope of the cases.

Package

anaphora.

Source

anaphora.lisp.

Macro: accase (keyform &body cases)

Like CCASE, except binds the result of the keyform to IT (via LET) for the scope of the cases. Unlike CCASE, the keyform/place doesn’t receive new values possibly stored with STORE-VALUE restart; the new value is received by IT.

Package

anaphora.

Source

anaphora.lisp.

Macro: acond (&body clauses)

Like COND, except result of each test-form is bound to IT (via LET) for the scope of the corresponding clause.

Package

anaphora.

Source

anaphora.lisp.

Macro: actypecase (keyform &body cases)

Like CTYPECASE, except binds the result of the keyform to IT (via LET) for the scope of the cases. Unlike CTYPECASE, new values possible stored by the STORE-VALUE restart are not received by the keyform/place, but by IT.

Package

anaphora.

Source

anaphora.lisp.

Macro: aecase (keyform &body cases)

Like ECASE, except binds the result of the keyform to IT (via LET) for the scope of the cases.

Package

anaphora.

Source

anaphora.lisp.

Macro: aetypecase (keyform &body cases)

Like ETYPECASE, except binds the result of the keyform to IT (via LET) for the scope of the cases.

Package

anaphora.

Source

anaphora.lisp.

Macro: aif (test then &optional else)

Like IF, except binds the result of the test to IT (via LET) for the scope of the then and else expressions.

Package

anaphora.

Source

anaphora.lisp.

Macro: alambda (lambda-list &body body)

Like LAMBDA, except that SELF is bound to the resulting function (via LABELS) within BODY.

Package

anaphora.

Source

anaphora.lisp.

Macro: alet (form &body body)

Binds the FORM to IT (via LET) in the scope of the BODY.

Package

anaphora.

Source

anaphora.lisp.

Macro: aprog1 (first &body rest)

Binds IT to the first form so that it can be used in the rest of the forms. The whole thing returns IT.

Package

anaphora.

Source

anaphora.lisp.

Macro: asif (test then &optional else)

Like IF, except binds the result of the test to IT (via LET) for the the scope of the then-expression, and the test form to IT (via SYMBOL-MACROLET) for the scope of the else-expression. Within scope of the else-expression, IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: atypecase (keyform &body cases)

Like TYPECASE, except binds the result of the keyform to IT (via LET) for the scope of the cases.

Package

anaphora.

Source

anaphora.lisp.

Macro: awhen (test &body body)

Like WHEN, except binds the result of the test to IT (via LET) for the scope of the body.

Package

anaphora.

Source

anaphora.lisp.

Macro: scase (keyform &body cases)

Like CASE, except binds the keyform to IT (via SYMBOL-MACROLET) for the scope of the body. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: sccase (keyform &body cases)

Like CCASE, except binds the keyform to IT (via SYMBOL-MACROLET) for the scope of the cases. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: scond (&body clauses)

Like COND, except each test-form is bound to IT (via SYMBOL-MACROLET) for the scope of the corresponsing clause. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: sctypecase (keyform &body cases)

Like CTYPECASE, except binds the keyform to IT (via SYMBOL-MACROLET) for the scope of the cases. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: secase (keyform &body cases)

Like ECASE, except binds the keyform to IT (via SYMBOL-MACROLET) for the scope of the cases. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: setypecase (keyform &body cases)

Like ETYPECASE, except binds the keyform to IT (via SYMBOL-MACROLET) for the scope of the cases. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: sif (test then &optional else)

Like IF, except binds the test form to IT (via SYMBOL-MACROLET) for the scope of the then and else expressions. IT can be set with SETF

Package

anaphora.

Source

anaphora.lisp.

Macro: slet (form &body body)

Binds the FORM to IT (via SYMBOL-MACROLET) in the scope of the BODY. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: sor (first &rest rest)

Like OR, except binds the first argument to IT (via SYMBOL-MACROLET) for the scope of the rest of the arguments. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: stypecase (keyform &body cases)

Like TYPECASE, except binds the keyform to IT (via SYMBOL-MACROLET) for the scope of the cases. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: sunless (test &body body)

Like UNLESS, except binds the test form to IT (via SYMBOL-MACROLET) for the scope of the body. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.

Macro: swhen (test &body body)

Like WHEN, except binds the test form to IT (via SYMBOL-MACROLET) for the scope of the body. IT can be set with SETF.

Package

anaphora.

Source

anaphora.lisp.


5.2 Internals


5.2.1 Macros

Macro: anaphoric (op test &body body)
Package

anaphora.

Source

symbolic.lisp.

Macro: ignore-first (first expr)
Package

anaphora.

Source

early.lisp.

Macro: internal-symbol-macrolet (&rest whatever)
Setf Expander: (setf internal-symbol-macrolet) (binding-forms place)
Package

anaphora.

Source

symbolic.lisp.

Macro: symbolic (operation test &rest other-args)
Package

anaphora.

Source

symbolic.lisp.

Macro: with-unique-names ((&rest bindings) &body body)
Package

anaphora.

Source

early.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
A   I   M   S   W  
Index Entry  Section

(
(setf internal-symbol-macrolet): Private macros

A
aand: Public macros
acase: Public macros
accase: Public macros
acond: Public macros
actypecase: Public macros
aecase: Public macros
aetypecase: Public macros
aif: Public macros
alambda: Public macros
alet: Public macros
anaphoric: Private macros
aprog1: Public macros
asif: Public macros
atypecase: Public macros
awhen: Public macros

I
ignore-first: Private macros
internal-symbol-macrolet: Private macros

M
Macro, aand: Public macros
Macro, acase: Public macros
Macro, accase: Public macros
Macro, acond: Public macros
Macro, actypecase: Public macros
Macro, aecase: Public macros
Macro, aetypecase: Public macros
Macro, aif: Public macros
Macro, alambda: Public macros
Macro, alet: Public macros
Macro, anaphoric: Private macros
Macro, aprog1: Public macros
Macro, asif: Public macros
Macro, atypecase: Public macros
Macro, awhen: Public macros
Macro, ignore-first: Private macros
Macro, internal-symbol-macrolet: Private macros
Macro, scase: Public macros
Macro, sccase: Public macros
Macro, scond: Public macros
Macro, sctypecase: Public macros
Macro, secase: Public macros
Macro, setypecase: Public macros
Macro, sif: Public macros
Macro, slet: Public macros
Macro, sor: Public macros
Macro, stypecase: Public macros
Macro, sunless: Public macros
Macro, swhen: Public macros
Macro, symbolic: Private macros
Macro, with-unique-names: Private macros

S
scase: Public macros
sccase: Public macros
scond: Public macros
sctypecase: Public macros
secase: Public macros
Setf Expander, (setf internal-symbol-macrolet): Private macros
setypecase: Public macros
sif: Public macros
slet: Public macros
sor: Public macros
stypecase: Public macros
sunless: Public macros
swhen: Public macros
symbolic: Private macros

W
with-unique-names: Private macros


A.3 Variables