The defrec Reference Manual

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

The defrec Reference Manual

This is the defrec Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 04:25:41 2022 GMT+0.

Table of Contents


1 Introduction

                                DEFREC
                                ------

                           By Robert Smith


DEFREC is a library for defining "top-level" mutually recursive
functions.

Example:

(defrec
  (even (x)
    (declare (type unsigned-byte x))
    (if (zerop x) t (odd (1- x))))
  (odd (x) 
    (declare (type unsigned-byte x))
    (if (zerop x) nil (even (1- x)))))

Now we can call EVEN and ODD.


2 Systems

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


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

2.1 defrec

A library for defining top-level mutually recursive functions.

Author

Robert Smith <quad@symbo1ics.com>

License

BSD 3-clause

Dependency

alexandria (system).

Source

defrec.asd.

Child Components

3 Files

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


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

3.1 Lisp


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

3.1.1 defrec/defrec.asd

Source

defrec.asd.

Parent Component

defrec (system).

ASDF Systems

defrec.


3.1.2 defrec/package.lisp

Source

defrec.asd.

Parent Component

defrec (system).

Packages

defrec.


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

3.1.3 defrec/defrec.lisp

Dependency

package.lisp (file).

Source

defrec.asd.

Parent Component

defrec (system).

Public Interface

defrec (macro).

Internals

&-symbol (function).


4 Packages

Packages are listed by definition order.


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

4.1 defrec

Source

package.lisp.

Use List

common-lisp.

Public Interface

defrec (macro).

Internals

&-symbol (function).


5 Definitions

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


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

5.1 Public Interface


5.1.1 Macros

Macro: defrec (&body definitions)

Define mutually recursive functions. Each definition of DEFINITIONS should be of the same form of FLET or LABELS:

(<function name> <lambda list>
<function body>).

Currently, lambda lists can only be lists of symbols. &REST, &OPTIONAL, and &KEY arguments are not supported.

Package

defrec.

Source

defrec.lisp.


5.2 Internals


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

5.2.1 Ordinary functions

Function: &-symbol (symbol)
Package

defrec.

Source

defrec.lisp.


Appendix A Indexes


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

A.1 Concepts


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

A.2 Functions

Jump to:   &  
D   F   M  
Index Entry  Section

&
&-symbol: Private ordinary functions

D
defrec: Public macros

F
Function, &-symbol: Private ordinary functions

M
Macro, defrec: Public macros

Jump to:   &  
D   F   M  

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

A.3 Variables