The immutable-struct Reference Manual

This is the immutable-struct Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:45:43 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 immutable-struct

Library that encourage the use of functional programming + pattern matching

Author

Masataro Asai

Contact

License

LLGPL

Version

0.1

Dependencies
  • trivia (system).
  • alexandria (system).
  • closer-mop (system).
Source

immutable-struct.asd.

Child Component

src (module).


3 Modules

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


3.1 immutable-struct/src

Source

immutable-struct.asd.

Parent Component

immutable-struct (system).

Child Component

package.lisp (file).


4 Files

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


4.1 Lisp


4.1.1 immutable-struct/immutable-struct.asd

Source

immutable-struct.asd.

Parent Component

immutable-struct (system).

ASDF Systems

immutable-struct.

Packages

immutable-struct-asd.


4.1.2 immutable-struct/src/package.lisp

Source

immutable-struct.asd.

Parent Component

src (module).

Packages

immutable-struct.

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 immutable-struct-asd

Source

immutable-struct.asd.

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

5.2 immutable-struct

Source

package.lisp.

Nickname

ois

Use List
  • alexandria.
  • common-lisp.
  • trivia.level2.
  • trivia.skip.
Public Interface
Internals

6 Definitions

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


6.1 Public Interface


6.1.1 Macros

Macro: defstruct (name-and-options &optional documentation &rest slots)

A variation of defstruct, with read-only slots and automatically defined constructor.
+ The constructor name has the different convention compared to the default naming convention in cl. It has (<name> &optional <slots...>) and has no keyword argument.
+ It adds read-only option in cl:defstruct to each slot definition.
+ It uses the noninterned symbols for the name of each slot, disallowing the use of slot-value. + It also defines a pattern matcher clause in exactly the same form as the constructor.

Package

immutable-struct.

Source

package.lisp.

Macro: ftype (name-or-names &rest types)

abbreviation of (declaim (ftype (function (<types...>) <type>) <name>)). the last type is used for the return type.

Package

immutable-struct.

Source

package.lisp.


6.2 Internals


6.2.1 Ordinary functions

Function: append-constructor (name-and-options slots)
Package

immutable-struct.

Source

package.lisp.

Function: canonical-defstruct (name-and-options documentation slots)
Package

immutable-struct.

Source

package.lisp.

Function: canonicalize-name-or-names (name-or-names)
Package

immutable-struct.

Source

package.lisp.


Appendix A Indexes


A.1 Concepts


A.3 Variables