The tailrec Reference Manual

This is the tailrec Reference Manual, version 0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 18:00:39 2024 GMT+0.

Table of Contents


1 Systems

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


1.1 tailrec

Guaranteed tail call optimization.

Author

Charles Jackson <>

License

GPL

Version

0

Dependencies
  • trivial-macroexpand-all (system).
  • alexandria (system).
  • trivial-with-current-source-form (system).
Source

tailrec.asd.

Child Component

tailrec.lisp (file).


2 Files

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


2.1 Lisp


2.1.1 tailrec/tailrec.asd

Source

tailrec.asd.

Parent Component

tailrec (system).

ASDF Systems

tailrec.

Packages

tailrec-asd.


2.1.2 tailrec/tailrec.lisp

Source

tailrec.asd.

Parent Component

tailrec (system).

Packages

tailrec.

Public Interface
Internals

3 Packages

Packages are listed by definition order.


3.1 tailrec-asd

Source

tailrec.asd.

Use List
  • asdf/interface.
  • common-lisp.

3.2 tailrec

Source

tailrec.lisp.

Use List

common-lisp.

Public Interface
Internals

4 Definitions

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


4.1 Public Interface


4.1.1 Macros

Macro: deftailrec (name lambda-list &body body)

Wrapper for ‘tailrec’ to reduce nesting by one layer.

Package

tailrec.

Source

tailrec.lisp.

Macro: nlet (name bindings &body body)
Package

tailrec.

Source

tailrec.lisp.

Macro: tailrec (defunition)

Ensure that BODY is tail call optimized when calling def

Package

tailrec.

Source

tailrec.lisp.


4.2 Internals


4.2.1 Special variables

Special Variable: *at-tail*
Package

tailrec.

Source

tailrec.lisp.

Special Variable: *first-form*
Package

tailrec.

Source

tailrec.lisp.

Special Variable: *last-form*
Package

tailrec.

Source

tailrec.lisp.

Special Variable: *optimized*
Package

tailrec.

Source

tailrec.lisp.


4.2.2 Ordinary functions

Function: conditionalp (symbol)
Package

tailrec.

Source

tailrec.lisp.

Function: optimize-tails (name start args form)

Return FORM optimize to tail call NAME.
START is the symbol at the begininng of NAME.
ARGS is the symbol storing the arguments before a jump.

Package

tailrec.

Source

tailrec.lisp.


Appendix A Indexes


A.1 Concepts