The trivia Reference Manual

Table of Contents

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

The trivia Reference Manual

This is the trivia Reference Manual, version 0.1, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:40:50 2018 GMT+0.


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

1 Introduction


[[https://travis-ci.org/guicho271828/trivia][https://travis-ci.org/guicho271828/trivia.svg?branch=master]]

+ news! new pattern: lambda-list pattern. Contributed by akssri
+ news! new pattern: number-related patterns, e.g. >, <, =, <= ... 
+ news! Inline pattern implemented ! : @, @@ ...
+ news!(04/02/2016) Support for fare-quasiquote is now available. See =test/quasiquote= for the usage
+ news!(04/22/2016) Added metabang-bind like macros =if-match=, =when-match=, =unless-match=, =let-match=, =let*-match=, =let-match1=
+ news!(05/21/2016) Added support for minor implementations: CMU, ECL, CLISP, ABCL.
+ news!(05/22/2016) Implemented =ARRAY=, =SIMPLE-ARRAY=, =ARRAY-ROW-MAJOR=, =ARRAY-ROW-MAJOR*= patterns! Multi-dimentional arrays are now more handy!
+ news!(07/21/2016) Added =READ=, =LAST=, =SPLIT=, =SPLIT*= patterns! Parsing the string is more conveninent.
+ news!(01/21/2017) Added =DYNAMIC= pattern! Careful use of this pattern can impact the performance sensitive code.
+ *news!(04/08/2017)* Added a new contrib package =TRIVIA.CFFI= which provides =->= pattern ! Offers convenient access to foreign objects.

* Trivia : Trivial Pattern Matching Compiler

Trivia is a pattern matching compiler that is *compatible with Optima*.
It shares the same testing code with Optima and acts as a
drop-in replacement for 99% usage. For the basic usage, consult [[https://github.com/guicho271828/trivia/wiki][our wiki]].
*Known differences between Optima and Trivia, which are bug, are [[https://github.com/guicho271828/trivia/wiki/Known-Differences][described here]] (7/31/2016)*

#+BEGIN_SRC diff
(defpackage :playwithit
  (:use :cl 
-       :optima))
+       :trivia))
(in-package :playwithit)

(match '(something #(0 1 2))
  ((list a (vector 0 _ b))
   (values a b)))
;; --> SOMETHING, 2
#+END_SRC

Patterns compiled with Trivia runs *[[https://github.com/guicho271828/trivia/wiki/Benchmarking-Results][faster than Optima]]*. 

| runtime [sec] | [[https://github.com/guicho271828/trivia/blob/master/bench/definitions.lisp#L11][fibonacci]] | [[https://github.com/guicho271828/trivia/blob/master/bench/definitions.lisp#L40][gomoku]] | [[https://github.com/guicho271828/trivia/blob/master/bench/definitions.lisp#L214][string-match]] |
|---------------+-----------+--------+--------------|
| optima        | 11.5      | 39.8   | 82.5         |
| trivia [1]    | *9.68*    | *37.4* | *1.57*       |

[1]: trivia is using :balland2006 optimiizer

... and Trivia is *more extensible*. In fact, Trivia's =defpattern= is able
to implement all of [[https://github.com/m2ym/optima#constructor-pattern][unmodifiable, core pattern language]] in Optima within itself.

#+BEGIN_SRC lisp
(defpattern cons (a b)
  (with-gensyms (it)
    `(guard1 (,it :type cons) (consp ,it) (car ,it) ,a (cdr ,it) ,b)))
#+END_SRC

Detailed documentation is in [[https://github.com/guicho271828/trivia/wiki][github wiki]].

* Dependency & Testing

+ Level 0,1 : Alexandria only.
+ Level 2 : Additionally, lisp-namespace and closer-mop.

To run the tests with trivial optimizer, =(asdf:test-system :trivia)= .

In order to run the same test with =:balland2006= optimizer activated, run follows:

#+BEGIN_SRC lisp
;; $ git clone https://github.com/guicho271828/trivia.balland2006
;; $ git clone https://github.com/guicho271828/type-i

(asdf:test-system :trivia.balland2006.enabled)
#+END_SRC

To run the benchmark:

#+BEGIN_SRC lisp
(asdf:test-system :trivia.benchmark)
#+END_SRC


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

2 Systems

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


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

2.1 trivia

Author

Masataro Asai

Contact

guicho2.71828@gmail.com

License

LLGPL

Description

NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase

Version

0.1

Dependency

trivia.level2 (system)

Source

trivia.asd (file)


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

2.2 trivia.level2

Author

Masataro Asai

Contact

guicho2.71828@gmail.com

License

LLGPL

Description

NON-optimized pattern matcher compatible with OPTIMA, with extensible optimizer interface and clean codebase

Version

0.1

Dependencies
Source

trivia.level2.asd (file)

Components

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

2.3 trivia.level1

Author

Masataro Asai

Contact

guicho2.71828@gmail.com

License

LLGPL

Description

Core patterns of Trivia

Version

0.1

Dependency

trivia.level0 (system)

Source

trivia.level1.asd (file)

Components

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

2.4 trivia.level0

Author

Masataro Asai

Contact

guicho2.71828@gmail.com

License

LLGPL

Description

Bootstrapping Pattern Matching Library for implementing Trivia

Version

0.1

Dependency

alexandria

Source

trivia.level0.asd (file)

Components

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

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 files   [Contents][Index]

3.1.1 trivia.asd

Location

trivia.asd

Systems

trivia (system)


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

3.1.2 trivia.level2.asd

Location

trivia.level2.asd

Systems

trivia.level2 (system)


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

3.1.3 trivia.level1.asd

Location

trivia.level1.asd

Systems

trivia.level1 (system)


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

3.1.4 trivia.level0.asd

Location

trivia.level0.asd

Systems

trivia.level0 (system)


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

3.1.5 trivia.level2/package.lisp

Parent

trivia.level2 (system)

Location

level2/package.lisp

Packages

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

3.1.6 trivia.level2/impl.lisp

Dependency

package.lisp (file)

Parent

trivia.level2 (system)

Location

level2/impl.lisp

Exported Definitions
Internal Definitions

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

3.1.7 trivia.level2/sugars.lisp

Dependency

impl.lisp (file)

Parent

trivia.level2 (system)

Location

level2/sugars.lisp

Exported Definitions
Internal Definitions

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

3.1.8 trivia.level2/derived.lisp

Dependency

sugars.lisp (file)

Parent

trivia.level2 (system)

Location

level2/derived.lisp

Internal Definitions

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

3.1.9 trivia.level2/derived-class.lisp

Dependency

derived.lisp (file)

Parent

trivia.level2 (system)

Location

level2/derived-class.lisp

Exported Definitions
Internal Definitions

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

3.1.10 trivia.level2/derived2.lisp

Dependency

derived-class.lisp (file)

Parent

trivia.level2 (system)

Location

level2/derived2.lisp


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

3.1.11 trivia.level2/derived3.lisp

Dependency

derived2.lisp (file)

Parent

trivia.level2 (system)

Location

level2/derived3.lisp

Internal Definitions

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

3.1.12 trivia.level2/derived-numbers.lisp

Dependency

derived3.lisp (file)

Parent

trivia.level2 (system)

Location

level2/derived-numbers.lisp


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

3.1.13 trivia.level2/arrays.lisp

Dependency

derived-numbers.lisp (file)

Parent

trivia.level2 (system)

Location

level2/arrays.lisp

Internal Definitions

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

3.1.14 trivia.level2/inline-pattern.lisp

Dependency

arrays.lisp (file)

Parent

trivia.level2 (system)

Location

level2/inline-pattern.lisp


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

3.1.15 trivia.level1/package.lisp

Parent

trivia.level1 (system)

Location

level1/package.lisp

Packages

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

3.1.16 trivia.level1/impl.lisp

Dependency

package.lisp (file)

Parent

trivia.level1 (system)

Location

level1/impl.lisp

Exported Definitions
Internal Definitions

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

3.1.17 trivia.level0/package.lisp

Parent

trivia.level0 (system)

Location

level0/package.lisp

Packages

trivia.level0

Internal Definitions

once-only (macro)


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

3.1.18 trivia.level0/impl.lisp

Dependency

package.lisp (file)

Parent

trivia.level0 (system)

Location

level0/impl.lisp

Exported Definitions
Internal Definitions

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

4 Packages

Packages are listed by definition order.


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

4.1 trivia.level2.impl

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

4.2 trivia.level2

Source

package.lisp (file)

Nickname

trivia

Use List

trivia.level1

Used By List

trivia.level2.impl

Exported Definitions

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

4.3 trivia.level1.impl

Source

package.lisp (file)

Use List
Internal Definitions

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

4.4 trivia.next

Source

package.lisp (file)

Used By List
Exported Definitions

next (macro)


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

4.5 trivia.skip

Source

package.lisp (file)

Used By List

trivia.level1.impl

Exported Definitions

skip (macro)


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

4.6 trivia.fail

Source

package.lisp (file)

Used By List

trivia.level1.impl

Exported Definitions

fail (macro)


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

4.7 trivia.level1

Source

package.lisp (file)

Used By List
Exported Definitions

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

4.8 trivia.level0

Source

package.lisp (file)

Use List

common-lisp

Used By List
Exported Definitions
Internal Definitions

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

5 Definitions

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


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

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

Special Variable: *arity-check-by-test-call*

If enabled (non-nil), UNARY-FUNCTION-P tests the arity of the candidate accessor function by FUNCALLing it with *TEST-CALL-ARGUMENT* (see the docstring of *TEST-CALL-ARGUMENT*).

PROGRAM-ERROR is treated as a reason of rejection; A function of arity != 1.
Other errors, as well as completion of the call without errors, are treated as a success.

Package

trivia.level2

Source

derived-class.lisp (file)

Special Variable: *lexvars*

List of symbol-and-options in the current parsing context.

Package

trivia.level1

Source

impl.lisp (file)

Special Variable: *optimizer*
Package

trivia.level2

Source

impl.lisp (file)

Special Variable: *or-pattern-allow-unshared-variables*
Package

trivia.level1

Source

impl.lisp (file)

Special Variable: *test-call-argument*

An argument used to call the candidate function in UNARY-FUNCTION-P. See *ARITY-CHECK-BY-TEST-CALL* for details.

Package

trivia.level2

Source

derived-class.lisp (file)

Special Variable: *trace-dispatching*

Used only for debugging. When non-nil, test-form for pattern matching is printed on the stream.

Package

trivia.level1

Source

impl.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Macros

Macro: cmatch WHAT &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: cmatch* WHATS &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: defoptimizer NAME ARGS &body BODY
Package

trivia.level2

Source

impl.lisp (file)

Macro: defpattern NAME ARGS &body BODY

Adds a new derived pattern.
The default value of &optional arguments are ’_, instead of nil.

Package

trivia.level2

Source

impl.lisp (file)

Macro: defpattern-inline NAME ARGS &body BODY

Adds a new inlined derived pattern. These patterns are evaluated from the innermost ones. The default value of &optional arguments are ’_, instead of nil.

Package

trivia.level2

Source

impl.lisp (file)

Macro: defun-cmatch NAME (ARG) &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: defun-cmatch* NAME ARGS &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: defun-ematch NAME (ARG) &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: defun-ematch* NAME ARGS &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: defun-match NAME (ARG) &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: defun-match* NAME ARGS &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: ematch WHAT &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: ematch* WHATS &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: ematch0 WHAT &body CLAUSES
Package

trivia.level0

Source

impl.lisp (file)

Macro: fail ()
Package

trivia.fail

Source

impl.lisp (file)

Macro: if-match PATTERN ARG &body THEN

Equivalent to (match ARG (PATTERN THEN) (_ ELSE)).

Package

trivia.level2

Source

sugars.lisp (file)

Macro: in-optimizer NAME
Package

trivia.level2

Source

impl.lisp (file)

Macro: lambda-cmatch &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: lambda-cmatch* &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: lambda-ematch &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: lambda-ematch* &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: lambda-ematch0 &body CLAUSES
Package

trivia.level0

Source

impl.lisp (file)

Macro: lambda-match &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: lambda-match* &body BODY
Package

trivia.level2

Source

sugars.lisp (file)

Macro: lambda-match0 &body CLAUSES
Package

trivia.level0

Source

impl.lisp (file)

Macro: let-match BINDINGS &body BODY

Similar to LET, except not only a variable but also a pattern can be used in BINDINGS.

Package

trivia.level2

Source

sugars.lisp (file)

Macro: let-match* BINDINGS &body BODY

Similar to LET-MATCH but matches sequentially.

Package

trivia.level2

Source

sugars.lisp (file)

Macro: let-match1 PATTERN ARG &body BODY

Equivalent to (let-match ((PATTERN ARG)) BODY...).

Package

trivia.level2

Source

sugars.lisp (file)

Macro: match WHAT &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: match* WHATS &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: match0 *WHAT* &body CLAUSES
Package

trivia.level0

Source

impl.lisp (file)

Macro: match1 WHAT &body CLAUSES
Package

trivia.level1

Source

impl.lisp (file)

Macro: match2 WHAT &body CLAUSES

In match2/match2*, the last clause is not enclosed in a block.
Therefore, using ‘next’ in the last clause results in jumping to the next innermost matching construct, or results in a compilation error when this is the outermost matching construct.

Package

trivia.level2

Source

impl.lisp (file)

Macro: match2* WHATS &body CLAUSES

In match2/match2*, the last clause is not enclosed in a block.
Therefore, using ‘next’ in the last clause results in jumping to the next innermost matching construct, or results in a compilation error when this is the outermost matching construct.

Package

trivia.level2

Source

impl.lisp (file)

Macro: match2*+ (&rest WHATS) (&rest TYPES) &body CLAUSES

Variant of match2* : can specify the inferred types of each argument

Package

trivia.level2

Source

impl.lisp (file)

Macro: match2+ WHAT TYPE &body CLAUSES

Variant of match2 : can specify the inferred type of the argument

Package

trivia.level2

Source

impl.lisp (file)

Macro: multiple-value-cmatch VALUES-FORM &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: multiple-value-ematch VALUES-FORM &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: multiple-value-match VALUES-FORM &body CLAUSES
Package

trivia.level2

Source

sugars.lisp (file)

Macro: next ()
Package

trivia.next

Source

impl.lisp (file)

Macro: skip ()
Package

trivia.skip

Source

impl.lisp (file)

Macro: trace-when CONDITION &rest BODY

Evaluate and print the result of the form when *trace-dispatching* is non-nil.

Package

trivia.level1

Source

impl.lisp (file)

Macro: unless-match PATTERN ARG &body BODY

Equivalent to (match ARG (PATTERN) (_ BODY...)).

Package

trivia.level2

Source

sugars.lisp (file)

Macro: when-match PATTERN ARG &body BODY

Equivalent to (match ARG (PATTERN BODY...)).

Package

trivia.level2

Source

sugars.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Functions

Function: correct-pattern PATTERN

Recursively check and try to correct the mismatch in the set of variables in or1 patterns

Package

trivia.level1

Source

impl.lisp (file)

Function: generate-multi-matcher ARGS *LEXVARS* CLAUSES &optional IN-CLAUSE-BLOCK
Package

trivia.level2

Source

impl.lisp (file)

Function: inline-pattern-expand P

Given a pattern p, returns a list of patterns that should be inlined.

Package

trivia.level2

Source

impl.lisp (file)

Function: pattern-expand P

expand the given pattern downto level1 pattern (i.e. until no expansion is available), just like macroexpand

Package

trivia.level2

Source

impl.lisp (file)

Function: pattern-expand-1 P

expand the given pattern once, just like macroexpand-1. Returns (values expansion-form expanded-p)

Package

trivia.level2

Source

impl.lisp (file)

Function: pattern-expand-all P

expand the given pattern recursively

Package

trivia.level2

Source

impl.lisp (file)

Function: predicate-p TYPE
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: predicatep TYPE
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: preprocess-symopts SYMOPT? PATTERN

Ensure the symopts being a list, plus sets some default values.

Package

trivia.level1

Source

impl.lisp (file)

Function: symbol-optimizer SYMBOL &optional DEFAULT

Automatically defined getter function. When DEFAULT is supplied, the value is set automatically.

Package

trivia.level2

Source

impl.lisp (file)

Writer

(setf symbol-optimizer) (function)

Function: (setf symbol-optimizer) NEW-VALUE SYMBOL

Automatically defined setter function.

Package

trivia.level2

Source

impl.lisp (file)

Reader

symbol-optimizer (function)

Function: variables PATTERN &optional *LEXVARS*
Package

trivia.level1

Source

impl.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Generic functions

Generic Function: conflicts CONDITION
Generic Function: (setf conflicts) NEW-VALUE CONDITION
Package

trivia.level1

Methods
Method: conflicts (CONDITION guard1-pattern-nonlinear)
Method: (setf conflicts) NEW-VALUE (CONDITION guard1-pattern-nonlinear)
Source

impl.lisp (file)

Method: conflicts (CONDITION or1-pattern-inconsistency)
Method: (setf conflicts) NEW-VALUE (CONDITION or1-pattern-inconsistency)
Source

impl.lisp (file)

Generic Function: match-error-pattern CONDITION
Package

trivia.level2

Methods
Method: match-error-pattern (CONDITION match-error)
Source

sugars.lisp (file)

Generic Function: match-error-values CONDITION
Package

trivia.level2

Methods
Method: match-error-values (CONDITION match-error)
Source

sugars.lisp (file)

Generic Function: pattern CONDITION
Generic Function: (setf pattern) NEW-VALUE CONDITION
Package

trivia.level1

Methods
Method: pattern (CONDITION guard1-pattern-nonlinear)
Method: (setf pattern) NEW-VALUE (CONDITION guard1-pattern-nonlinear)
Source

impl.lisp (file)

Method: pattern (CONDITION or1-pattern-inconsistency)
Method: (setf pattern) NEW-VALUE (CONDITION or1-pattern-inconsistency)
Source

impl.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.5 Conditions

Condition: guard1-pattern-nonlinear ()
Package

trivia.level1

Source

impl.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: pattern
Initargs

:pattern

Readers

pattern (generic function)

Writers

(setf pattern) (generic function)

Slot: conflicts
Initargs

:conflicts

Readers

conflicts (generic function)

Writers

(setf conflicts) (generic function)

Condition: match-error ()
Package

trivia.level2

Source

sugars.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: pattern
Initargs

:pattern

Readers

match-error-pattern (generic function)

Slot: values
Initargs

:values

Readers

match-error-values (generic function)

Condition: or1-pattern-inconsistency ()
Package

trivia.level1

Source

impl.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: pattern
Initargs

:pattern

Readers

pattern (generic function)

Writers

(setf pattern) (generic function)

Slot: conflicts
Initargs

:conflicts

Readers

conflicts (generic function)

Writers

(setf conflicts) (generic function)


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

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Special variables

Special Variable: *bindings*
Package

trivia.level0

Source

impl.lisp (file)

Special Variable: *env*
Package

trivia.level0

Source

impl.lisp (file)

Special Variable: *inline-pattern-doc-table*
Package

trivia.level2.impl

Source

impl.lisp (file)

Special Variable: *inline-pattern-table*
Package

trivia.level2.impl

Source

impl.lisp (file)

Special Variable: *optimizer-doc-table*
Package

trivia.level2.impl

Source

impl.lisp (file)

Special Variable: *optimizer-table*
Package

trivia.level2.impl

Source

impl.lisp (file)

Special Variable: *pattern-doc-table*
Package

trivia.level2.impl

Source

impl.lisp (file)

Special Variable: *pattern-table*
Package

trivia.level2.impl

Source

impl.lisp (file)

Special Variable: *what*
Package

trivia.level0

Source

impl.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Macros

Macro: ensure-getf PLACE KEY &optional DEFAULT
Package

trivia.level1.impl

Source

impl.lisp (file)

Macro: inline-pattern-let BINDINGS &body BODY
Package

trivia.level2.impl

Source

impl.lisp (file)

Macro: once-only SPECS &body FORMS
Package

trivia.level0

Source

package.lisp (file)

Macro: optimizer-let BINDINGS &body BODY
Package

trivia.level2.impl

Source

impl.lisp (file)

Macro: pattern-let BINDINGS &body BODY
Package

trivia.level2.impl

Source

impl.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Functions

Function: %correct-more-patterns MORE
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: %match ARG CLAUSES
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: %variables PATTERN

given a pattern, traverse the matching tree and returns a list of variables bounded by guard1 pattern. Temporary symbols are not accounted.

Package

trivia.level1.impl

Source

impl.lisp (file)

Function: %variables-more-patterns MORE-PATTERNS
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: accessor-form IT TYPE PARSED1

used when the type is a class, structure etc.

Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: accessor-form-on-built-in-class IT TYPE PARSED1
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: accessor-form-on-class IT TYPE PARSED1
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: accessor-form-on-structure IT TYPE PARSED1
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: accessor-form-using-function IT TYPE PARSED1
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: ambiguous-slot-error FORMAT-CONTROL &rest ARGS
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: array-type-spec ADJUSTABLE HAS-FILL-POINTER DISPLACED-TO DISPLACED-INDEX-OFFSET
Package

trivia.level2.impl

Source

arrays.lisp (file)

Function: bind-missing-vars-with-nil PATTERN MISSING
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: call-with-mvb-temp-vars CLAUSES FN
Package

trivia.level2.impl

Source

sugars.lisp (file)

Function: combine-guard1-subpatterns GUARD1-PATTERNS
Package

trivia.level2.impl

Source

derived.lisp (file)

Function: common-specs DIMENSIONS RANK TOTAL-SIZE &optional RANK-ERROR

Deduce the rank from array DIMENSIONS, then normalize and check the consistency of the specification. For example, DIMENSION = ’(1 2 3) and RANK = 2 is inconsistent, the RANK should be 3.

Package

trivia.level2.impl

Source

arrays.lisp (file)

Function: compile-destructuring-pattern OPS &optional DEFAULT
Package

trivia.level2.impl

Source

derived3.lisp (file)

Function: compile-keyword-patterns SUBPATTERNS
Package

trivia.level2.impl

Source

derived3.lisp (file)

Function: decompose-array-contents X &optional DIM OFFSET
Package

trivia.level2.impl

Source

derived.lisp (file)

Function: deferred-p SYMOPT?

returns if the symopt has :deferred flag

Package

trivia.level2.impl

Source

derived.lisp (file)

Function: destructure-guard1-subpatterns MORE-PATTERNS BODY
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: easy-infer-type FN-SYM

same thing as in type-i:unary-function. copied here in order to remove dependency

Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: element-type-spec ELEMENT-TYPE
Package

trivia.level2.impl

Source

arrays.lisp (file)

Function: expand-and SUBPATTERNS
Package

trivia.level2.impl

Source

derived.lisp (file)

Function: expand-clause CLAUSE
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: expand-multipatterns PATTERNS
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: find-effective-slot SYMBOL TYPE
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: find-reader SLOT TYPE
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: gensym* NAME
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: inline-pattern-boundp SYMBOL

Automatically defined boolean function.

Package

trivia.level2.impl

Source

impl.lisp (file)

Function: make-gensyms LIST &optional NAME
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: make-negated-case SYM TEST

Creates a negated pattern. If the pattern is deferred, the deferred test
should be negated, but the test itself should remain T
(Otherwise the matching fails at this point because the test (not t) always fails.)

Package

trivia.level2.impl

Source

derived.lisp (file)

Function: make-pattern-predicate PATTERN
Package

trivia.level0

Source

impl.lisp (file)

Function: map-accessors PARSED IT TYPE
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: mapcar1-with-last FN LIST
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: mapcar1-with-next FN LIST
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: match-clause ARG PATTERN BODY
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: match-clauses ARG CLAUSES
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: merge-variables SEQ1 SEQ2
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: negate-deferred SYMOPT?

make a new symopt whose :deferred test is negated if set

Package

trivia.level2.impl

Source

derived.lisp (file)

Function: optimizer-boundp SYMBOL

Automatically defined boolean function.

Package

trivia.level2.impl

Source

impl.lisp (file)

Function: pad MAX CLAUSE
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: parse-lambda-list ARGV &optional CANONICALP
Package

trivia.level2.impl

Source

derived3.lisp (file)

Function: parse-matcher-body BODY
Package

trivia.level2.impl

Source

sugars.lisp (file)

Function: parse-patterns CLAUSES
Package

trivia.level0

Source

impl.lisp (file)

Function: parse-slots SLOTS

canonicalize the slot into (symbol pattern) form

Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: pattern-boundp SYMBOL

Automatically defined boolean function.

Package

trivia.level2.impl

Source

impl.lisp (file)

Function: postprocess-deferred PATTERNS

equivalent to optima’s lift 1/2:

lift1:
(list (guard x (consp x)) (guard y (eq y (car x)))) => (guard (list x (guard y (eq y (car x)))) (consp x)) => (guard (guard (list x y) (eq y (car x))) (consp x)) => (guard (list x y) (and (consp x) (eq y (car x))))

lift2:
(list 3 (or 1 (guard x (evenp x))))
=> (or (list 3 1) (list 3 (guard x (evenp x))))
=> (or (list 3 1) (guard (list 3 x) (evenp x)))

Package

trivia.level2.impl

Source

impl.lisp (file)

Function: postprocess-deferred-1 PATTERN
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: process-keyword-args ARGS
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: process-lambda-args ARGS
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: process-optional-args ARGS
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: process-rest-args ARGS
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: set-equal-or-error &optional SEQ1 SEQ2
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: set-vector-matcher NAME &optional REF NEED-TYPE SOFT
Package

trivia.level2.impl

Source

arrays.lisp (file)

Function: subst-notsym PATTERN SYMOPT?

substitute a symbol with an anonymous symbol, in order to avoid capturing the variables inside NOT pattern. For example,

(let ((it 1))
(match 2
((not (guard it (eql it 3))) it)
(_ :fail)))

This should return 1, however without proper renaming of variable ‘it’, ‘it’ will be bound to NIL.

Package

trivia.level2.impl

Source

derived.lisp (file)

Function: symbol-inline-pattern SYMBOL &optional DEFAULT

Automatically defined getter function. When DEFAULT is supplied, the value is set automatically.

Package

trivia.level2.impl

Source

impl.lisp (file)

Writer

(setf symbol-inline-pattern) (function)

Function: (setf symbol-inline-pattern) NEW-VALUE SYMBOL

Automatically defined setter function.

Package

trivia.level2.impl

Source

impl.lisp (file)

Reader

symbol-inline-pattern (function)

Function: symbol-pattern SYMBOL &optional DEFAULT

Automatically defined getter function. When DEFAULT is supplied, the value is set automatically.

Package

trivia.level2.impl

Source

impl.lisp (file)

Writer

(setf symbol-pattern) (function)

Function: (setf symbol-pattern) NEW-VALUE SYMBOL

Automatically defined setter function.

Package

trivia.level2.impl

Source

impl.lisp (file)

Reader

symbol-pattern (function)

Function: take-while LIST PREDICATE

Checks if predicate returns true, for each element of a list.
Collect the elements until it returns false.
Returns the collected elements and the remaining elements.
If the list exhausted by cdr of the list being an atom (not necessarily nil),
then similarly returns the collected elements and the atom, which might be nil in case of regular list, or otherwise it can be anything (e.g. (take-while ’(a . b) (constantly t)) returns (values ’(a) ’b)).

Package

trivia.level2.impl

Source

derived3.lisp (file)

Function: unary-function-p FN TYPE
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Function: union* &optional X Y
Package

trivia.level1.impl

Source

impl.lisp (file)

Function: variablep PATTERN
Package

trivia.level2.impl

Source

impl.lisp (file)

Function: wildcardp PATTERN
Package

trivia.level2.impl

Source

impl.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Generic functions

Generic Function: deferred-test CONDITION
Generic Function: (setf deferred-test) NEW-VALUE CONDITION
Package

trivia.level2.impl

Methods
Method: deferred-test (CONDITION deferred)
Method: (setf deferred-test) NEW-VALUE (CONDITION deferred)
Source

impl.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.5 Conditions

Condition: ambiguous-slot-error ()
Package

trivia.level2.impl

Source

derived-class.lisp (file)

Direct superclasses

simple-error (condition)

Condition: deferred ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Direct superclasses

condition (condition)

Direct methods
Direct slots
Slot: test
Initargs

:test

Readers

deferred-test (generic function)

Writers

(setf deferred-test) (generic function)

Condition: place-pattern ()
Package

trivia.level1.impl

Source

impl.lisp (file)

Direct superclasses

condition (condition)

Condition: unbound-inline-pattern ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Direct superclasses

unbound-variable (condition)

Condition: unbound-optimizer ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Direct superclasses

unbound-variable (condition)

Condition: unbound-pattern ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Direct superclasses

unbound-variable (condition)

Condition: wildcard ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Direct superclasses

condition (condition)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.6 Types

Type: inline-pattern-type ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Type: optimizer-type ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Type: pattern-type ()
Package

trivia.level2.impl

Source

impl.lisp (file)

Type: variable-symbol ()
Package

trivia.level2.impl

Source

derived3.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   T  
Index Entry  Section

F
File, Lisp, trivia.asd: The trivia<dot>asd file
File, Lisp, trivia.level0.asd: The trivia<dot>level0<dot>asd file
File, Lisp, trivia.level0/impl.lisp: The trivia<dot>level0/impl<dot>lisp file
File, Lisp, trivia.level0/package.lisp: The trivia<dot>level0/package<dot>lisp file
File, Lisp, trivia.level1.asd: The trivia<dot>level1<dot>asd file
File, Lisp, trivia.level1/impl.lisp: The trivia<dot>level1/impl<dot>lisp file
File, Lisp, trivia.level1/package.lisp: The trivia<dot>level1/package<dot>lisp file
File, Lisp, trivia.level2.asd: The trivia<dot>level2<dot>asd file
File, Lisp, trivia.level2/arrays.lisp: The trivia<dot>level2/arrays<dot>lisp file
File, Lisp, trivia.level2/derived-class.lisp: The trivia<dot>level2/derived-class<dot>lisp file
File, Lisp, trivia.level2/derived-numbers.lisp: The trivia<dot>level2/derived-numbers<dot>lisp file
File, Lisp, trivia.level2/derived.lisp: The trivia<dot>level2/derived<dot>lisp file
File, Lisp, trivia.level2/derived2.lisp: The trivia<dot>level2/derived2<dot>lisp file
File, Lisp, trivia.level2/derived3.lisp: The trivia<dot>level2/derived3<dot>lisp file
File, Lisp, trivia.level2/impl.lisp: The trivia<dot>level2/impl<dot>lisp file
File, Lisp, trivia.level2/inline-pattern.lisp: The trivia<dot>level2/inline-pattern<dot>lisp file
File, Lisp, trivia.level2/package.lisp: The trivia<dot>level2/package<dot>lisp file
File, Lisp, trivia.level2/sugars.lisp: The trivia<dot>level2/sugars<dot>lisp file

L
Lisp File, trivia.asd: The trivia<dot>asd file
Lisp File, trivia.level0.asd: The trivia<dot>level0<dot>asd file
Lisp File, trivia.level0/impl.lisp: The trivia<dot>level0/impl<dot>lisp file
Lisp File, trivia.level0/package.lisp: The trivia<dot>level0/package<dot>lisp file
Lisp File, trivia.level1.asd: The trivia<dot>level1<dot>asd file
Lisp File, trivia.level1/impl.lisp: The trivia<dot>level1/impl<dot>lisp file
Lisp File, trivia.level1/package.lisp: The trivia<dot>level1/package<dot>lisp file
Lisp File, trivia.level2.asd: The trivia<dot>level2<dot>asd file
Lisp File, trivia.level2/arrays.lisp: The trivia<dot>level2/arrays<dot>lisp file
Lisp File, trivia.level2/derived-class.lisp: The trivia<dot>level2/derived-class<dot>lisp file
Lisp File, trivia.level2/derived-numbers.lisp: The trivia<dot>level2/derived-numbers<dot>lisp file
Lisp File, trivia.level2/derived.lisp: The trivia<dot>level2/derived<dot>lisp file
Lisp File, trivia.level2/derived2.lisp: The trivia<dot>level2/derived2<dot>lisp file
Lisp File, trivia.level2/derived3.lisp: The trivia<dot>level2/derived3<dot>lisp file
Lisp File, trivia.level2/impl.lisp: The trivia<dot>level2/impl<dot>lisp file
Lisp File, trivia.level2/inline-pattern.lisp: The trivia<dot>level2/inline-pattern<dot>lisp file
Lisp File, trivia.level2/package.lisp: The trivia<dot>level2/package<dot>lisp file
Lisp File, trivia.level2/sugars.lisp: The trivia<dot>level2/sugars<dot>lisp file

T
trivia.asd: The trivia<dot>asd file
trivia.level0.asd: The trivia<dot>level0<dot>asd file
trivia.level0/impl.lisp: The trivia<dot>level0/impl<dot>lisp file
trivia.level0/package.lisp: The trivia<dot>level0/package<dot>lisp file
trivia.level1.asd: The trivia<dot>level1<dot>asd file
trivia.level1/impl.lisp: The trivia<dot>level1/impl<dot>lisp file
trivia.level1/package.lisp: The trivia<dot>level1/package<dot>lisp file
trivia.level2.asd: The trivia<dot>level2<dot>asd file
trivia.level2/arrays.lisp: The trivia<dot>level2/arrays<dot>lisp file
trivia.level2/derived-class.lisp: The trivia<dot>level2/derived-class<dot>lisp file
trivia.level2/derived-numbers.lisp: The trivia<dot>level2/derived-numbers<dot>lisp file
trivia.level2/derived.lisp: The trivia<dot>level2/derived<dot>lisp file
trivia.level2/derived2.lisp: The trivia<dot>level2/derived2<dot>lisp file
trivia.level2/derived3.lisp: The trivia<dot>level2/derived3<dot>lisp file
trivia.level2/impl.lisp: The trivia<dot>level2/impl<dot>lisp file
trivia.level2/inline-pattern.lisp: The trivia<dot>level2/inline-pattern<dot>lisp file
trivia.level2/package.lisp: The trivia<dot>level2/package<dot>lisp file
trivia.level2/sugars.lisp: The trivia<dot>level2/sugars<dot>lisp file

Jump to:   F   L   T  

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

A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   I   L   M   N   O   P   S   T   U   V   W  
Index Entry  Section

%
%correct-more-patterns: Internal functions
%match: Internal functions
%variables: Internal functions
%variables-more-patterns: Internal functions

(
(setf conflicts): Exported generic functions
(setf conflicts): Exported generic functions
(setf conflicts): Exported generic functions
(setf deferred-test): Internal generic functions
(setf deferred-test): Internal generic functions
(setf pattern): Exported generic functions
(setf pattern): Exported generic functions
(setf pattern): Exported generic functions
(setf symbol-inline-pattern): Internal functions
(setf symbol-optimizer): Exported functions
(setf symbol-pattern): Internal functions

A
accessor-form: Internal functions
accessor-form-on-built-in-class: Internal functions
accessor-form-on-class: Internal functions
accessor-form-on-structure: Internal functions
accessor-form-using-function: Internal functions
ambiguous-slot-error: Internal functions
array-type-spec: Internal functions

B
bind-missing-vars-with-nil: Internal functions

C
call-with-mvb-temp-vars: Internal functions
cmatch: Exported macros
cmatch*: Exported macros
combine-guard1-subpatterns: Internal functions
common-specs: Internal functions
compile-destructuring-pattern: Internal functions
compile-keyword-patterns: Internal functions
conflicts: Exported generic functions
conflicts: Exported generic functions
conflicts: Exported generic functions
correct-pattern: Exported functions

D
decompose-array-contents: Internal functions
deferred-p: Internal functions
deferred-test: Internal generic functions
deferred-test: Internal generic functions
defoptimizer: Exported macros
defpattern: Exported macros
defpattern-inline: Exported macros
defun-cmatch: Exported macros
defun-cmatch*: Exported macros
defun-ematch: Exported macros
defun-ematch*: Exported macros
defun-match: Exported macros
defun-match*: Exported macros
destructure-guard1-subpatterns: Internal functions

E
easy-infer-type: Internal functions
element-type-spec: Internal functions
ematch: Exported macros
ematch*: Exported macros
ematch0: Exported macros
ensure-getf: Internal macros
expand-and: Internal functions
expand-clause: Internal functions
expand-multipatterns: Internal functions

F
fail: Exported macros
find-effective-slot: Internal functions
find-reader: Internal functions
Function, %correct-more-patterns: Internal functions
Function, %match: Internal functions
Function, %variables: Internal functions
Function, %variables-more-patterns: Internal functions
Function, (setf symbol-inline-pattern): Internal functions
Function, (setf symbol-optimizer): Exported functions
Function, (setf symbol-pattern): Internal functions
Function, accessor-form: Internal functions
Function, accessor-form-on-built-in-class: Internal functions
Function, accessor-form-on-class: Internal functions
Function, accessor-form-on-structure: Internal functions
Function, accessor-form-using-function: Internal functions
Function, ambiguous-slot-error: Internal functions
Function, array-type-spec: Internal functions
Function, bind-missing-vars-with-nil: Internal functions
Function, call-with-mvb-temp-vars: Internal functions
Function, combine-guard1-subpatterns: Internal functions
Function, common-specs: Internal functions
Function, compile-destructuring-pattern: Internal functions
Function, compile-keyword-patterns: Internal functions
Function, correct-pattern: Exported functions
Function, decompose-array-contents: Internal functions
Function, deferred-p: Internal functions
Function, destructure-guard1-subpatterns: Internal functions
Function, easy-infer-type: Internal functions
Function, element-type-spec: Internal functions
Function, expand-and: Internal functions
Function, expand-clause: Internal functions
Function, expand-multipatterns: Internal functions
Function, find-effective-slot: Internal functions
Function, find-reader: Internal functions
Function, generate-multi-matcher: Exported functions
Function, gensym*: Internal functions
Function, inline-pattern-boundp: Internal functions
Function, inline-pattern-expand: Exported functions
Function, make-gensyms: Internal functions
Function, make-negated-case: Internal functions
Function, make-pattern-predicate: Internal functions
Function, map-accessors: Internal functions
Function, mapcar1-with-last: Internal functions
Function, mapcar1-with-next: Internal functions
Function, match-clause: Internal functions
Function, match-clauses: Internal functions
Function, merge-variables: Internal functions
Function, negate-deferred: Internal functions
Function, optimizer-boundp: Internal functions
Function, pad: Internal functions
Function, parse-lambda-list: Internal functions
Function, parse-matcher-body: Internal functions
Function, parse-patterns: Internal functions
Function, parse-slots: Internal functions
Function, pattern-boundp: Internal functions
Function, pattern-expand: Exported functions
Function, pattern-expand-1: Exported functions
Function, pattern-expand-all: Exported functions
Function, postprocess-deferred: Internal functions
Function, postprocess-deferred-1: Internal functions
Function, predicate-p: Exported functions
Function, predicatep: Exported functions
Function, preprocess-symopts: Exported functions
Function, process-keyword-args: Internal functions
Function, process-lambda-args: Internal functions
Function, process-optional-args: Internal functions
Function, process-rest-args: Internal functions
Function, set-equal-or-error: Internal functions
Function, set-vector-matcher: Internal functions
Function, subst-notsym: Internal functions
Function, symbol-inline-pattern: Internal functions
Function, symbol-optimizer: Exported functions
Function, symbol-pattern: Internal functions
Function, take-while: Internal functions
Function, unary-function-p: Internal functions
Function, union*: Internal functions
Function, variablep: Internal functions
Function, variables: Exported functions
Function, wildcardp: Internal functions

G
generate-multi-matcher: Exported functions
Generic Function, (setf conflicts): Exported generic functions
Generic Function, (setf deferred-test): Internal generic functions
Generic Function, (setf pattern): Exported generic functions
Generic Function, conflicts: Exported generic functions
Generic Function, deferred-test: Internal generic functions
Generic Function, match-error-pattern: Exported generic functions
Generic Function, match-error-values: Exported generic functions
Generic Function, pattern: Exported generic functions
gensym*: Internal functions

I
if-match: Exported macros
in-optimizer: Exported macros
inline-pattern-boundp: Internal functions
inline-pattern-expand: Exported functions
inline-pattern-let: Internal macros

L
lambda-cmatch: Exported macros
lambda-cmatch*: Exported macros
lambda-ematch: Exported macros
lambda-ematch*: Exported macros
lambda-ematch0: Exported macros
lambda-match: Exported macros
lambda-match*: Exported macros
lambda-match0: Exported macros
let-match: Exported macros
let-match*: Exported macros
let-match1: Exported macros

M
Macro, cmatch: Exported macros
Macro, cmatch*: Exported macros
Macro, defoptimizer: Exported macros
Macro, defpattern: Exported macros
Macro, defpattern-inline: Exported macros
Macro, defun-cmatch: Exported macros
Macro, defun-cmatch*: Exported macros
Macro, defun-ematch: Exported macros
Macro, defun-ematch*: Exported macros
Macro, defun-match: Exported macros
Macro, defun-match*: Exported macros
Macro, ematch: Exported macros
Macro, ematch*: Exported macros
Macro, ematch0: Exported macros
Macro, ensure-getf: Internal macros
Macro, fail: Exported macros
Macro, if-match: Exported macros
Macro, in-optimizer: Exported macros
Macro, inline-pattern-let: Internal macros
Macro, lambda-cmatch: Exported macros
Macro, lambda-cmatch*: Exported macros
Macro, lambda-ematch: Exported macros
Macro, lambda-ematch*: Exported macros
Macro, lambda-ematch0: Exported macros
Macro, lambda-match: Exported macros
Macro, lambda-match*: Exported macros
Macro, lambda-match0: Exported macros
Macro, let-match: Exported macros
Macro, let-match*: Exported macros
Macro, let-match1: Exported macros
Macro, match: Exported macros
Macro, match*: Exported macros
Macro, match0: Exported macros
Macro, match1: Exported macros
Macro, match2: Exported macros
Macro, match2*: Exported macros
Macro, match2*+: Exported macros
Macro, match2+: Exported macros
Macro, multiple-value-cmatch: Exported macros
Macro, multiple-value-ematch: Exported macros
Macro, multiple-value-match: Exported macros
Macro, next: Exported macros
Macro, once-only: Internal macros
Macro, optimizer-let: Internal macros
Macro, pattern-let: Internal macros
Macro, skip: Exported macros
Macro, trace-when: Exported macros
Macro, unless-match: Exported macros
Macro, when-match: Exported macros
make-gensyms: Internal functions
make-negated-case: Internal functions
make-pattern-predicate: Internal functions
map-accessors: Internal functions
mapcar1-with-last: Internal functions
mapcar1-with-next: Internal functions
match: Exported macros
match*: Exported macros
match-clause: Internal functions
match-clauses: Internal functions
match-error-pattern: Exported generic functions
match-error-pattern: Exported generic functions
match-error-values: Exported generic functions
match-error-values: Exported generic functions
match0: Exported macros
match1: Exported macros
match2: Exported macros
match2*: Exported macros
match2*+: Exported macros
match2+: Exported macros
merge-variables: Internal functions
Method, (setf conflicts): Exported generic functions
Method, (setf conflicts): Exported generic functions
Method, (setf deferred-test): Internal generic functions
Method, (setf pattern): Exported generic functions
Method, (setf pattern): Exported generic functions
Method, conflicts: Exported generic functions
Method, conflicts: Exported generic functions
Method, deferred-test: Internal generic functions
Method, match-error-pattern: Exported generic functions
Method, match-error-values: Exported generic functions
Method, pattern: Exported generic functions
Method, pattern: Exported generic functions
multiple-value-cmatch: Exported macros
multiple-value-ematch: Exported macros
multiple-value-match: Exported macros

N
negate-deferred: Internal functions
next: Exported macros

O
once-only: Internal macros
optimizer-boundp: Internal functions
optimizer-let: Internal macros

P
pad: Internal functions
parse-lambda-list: Internal functions
parse-matcher-body: Internal functions
parse-patterns: Internal functions
parse-slots: Internal functions
pattern: Exported generic functions
pattern: Exported generic functions
pattern: Exported generic functions
pattern-boundp: Internal functions
pattern-expand: Exported functions
pattern-expand-1: Exported functions
pattern-expand-all: Exported functions
pattern-let: Internal macros
postprocess-deferred: Internal functions
postprocess-deferred-1: Internal functions
predicate-p: Exported functions
predicatep: Exported functions
preprocess-symopts: Exported functions
process-keyword-args: Internal functions
process-lambda-args: Internal functions
process-optional-args: Internal functions
process-rest-args: Internal functions

S
set-equal-or-error: Internal functions
set-vector-matcher: Internal functions
skip: Exported macros
subst-notsym: Internal functions
symbol-inline-pattern: Internal functions
symbol-optimizer: Exported functions
symbol-pattern: Internal functions

T
take-while: Internal functions
trace-when: Exported macros

U
unary-function-p: Internal functions
union*: Internal functions
unless-match: Exported macros

V
variablep: Internal functions
variables: Exported functions

W
when-match: Exported macros
wildcardp: Internal functions

Jump to:   %   (  
A   B   C   D   E   F   G   I   L   M   N   O   P   S   T   U   V   W  

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

A.3 Variables

Jump to:   *  
C   P   S   T   V  
Index Entry  Section

*
*arity-check-by-test-call*: Exported special variables
*bindings*: Internal special variables
*env*: Internal special variables
*inline-pattern-doc-table*: Internal special variables
*inline-pattern-table*: Internal special variables
*lexvars*: Exported special variables
*optimizer*: Exported special variables
*optimizer-doc-table*: Internal special variables
*optimizer-table*: Internal special variables
*or-pattern-allow-unshared-variables*: Exported special variables
*pattern-doc-table*: Internal special variables
*pattern-table*: Internal special variables
*test-call-argument*: Exported special variables
*trace-dispatching*: Exported special variables
*what*: Internal special variables

C
conflicts: Exported conditions
conflicts: Exported conditions

P
pattern: Exported conditions
pattern: Exported conditions
pattern: Exported conditions

S
Slot, conflicts: Exported conditions
Slot, conflicts: Exported conditions
Slot, pattern: Exported conditions
Slot, pattern: Exported conditions
Slot, pattern: Exported conditions
Slot, test: Internal conditions
Slot, values: Exported conditions
Special Variable, *arity-check-by-test-call*: Exported special variables
Special Variable, *bindings*: Internal special variables
Special Variable, *env*: Internal special variables
Special Variable, *inline-pattern-doc-table*: Internal special variables
Special Variable, *inline-pattern-table*: Internal special variables
Special Variable, *lexvars*: Exported special variables
Special Variable, *optimizer*: Exported special variables
Special Variable, *optimizer-doc-table*: Internal special variables
Special Variable, *optimizer-table*: Internal special variables
Special Variable, *or-pattern-allow-unshared-variables*: Exported special variables
Special Variable, *pattern-doc-table*: Internal special variables
Special Variable, *pattern-table*: Internal special variables
Special Variable, *test-call-argument*: Exported special variables
Special Variable, *trace-dispatching*: Exported special variables
Special Variable, *what*: Internal special variables

T
test: Internal conditions

V
values: Exported conditions

Jump to:   *  
C   P   S   T   V  

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

A.4 Data types

Jump to:   A   C   D   G   I   M   O   P   S   T   U   V   W  
Index Entry  Section

A
ambiguous-slot-error: Internal conditions

C
Condition, ambiguous-slot-error: Internal conditions
Condition, deferred: Internal conditions
Condition, guard1-pattern-nonlinear: Exported conditions
Condition, match-error: Exported conditions
Condition, or1-pattern-inconsistency: Exported conditions
Condition, place-pattern: Internal conditions
Condition, unbound-inline-pattern: Internal conditions
Condition, unbound-optimizer: Internal conditions
Condition, unbound-pattern: Internal conditions
Condition, wildcard: Internal conditions

D
deferred: Internal conditions

G
guard1-pattern-nonlinear: Exported conditions

I
inline-pattern-type: Internal types

M
match-error: Exported conditions

O
optimizer-type: Internal types
or1-pattern-inconsistency: Exported conditions

P
Package, trivia.fail: The trivia<dot>fail package
Package, trivia.level0: The trivia<dot>level0 package
Package, trivia.level1: The trivia<dot>level1 package
Package, trivia.level1.impl: The trivia<dot>level1<dot>impl package
Package, trivia.level2: The trivia<dot>level2 package
Package, trivia.level2.impl: The trivia<dot>level2<dot>impl package
Package, trivia.next: The trivia<dot>next package
Package, trivia.skip: The trivia<dot>skip package
pattern-type: Internal types
place-pattern: Internal conditions

S
System, trivia: The trivia system
System, trivia.level0: The trivia<dot>level0 system
System, trivia.level1: The trivia<dot>level1 system
System, trivia.level2: The trivia<dot>level2 system

T
trivia: The trivia system
trivia.fail: The trivia<dot>fail package
trivia.level0: The trivia<dot>level0 system
trivia.level0: The trivia<dot>level0 package
trivia.level1: The trivia<dot>level1 system
trivia.level1: The trivia<dot>level1 package
trivia.level1.impl: The trivia<dot>level1<dot>impl package
trivia.level2: The trivia<dot>level2 system
trivia.level2: The trivia<dot>level2 package
trivia.level2.impl: The trivia<dot>level2<dot>impl package
trivia.next: The trivia<dot>next package
trivia.skip: The trivia<dot>skip package
Type, inline-pattern-type: Internal types
Type, optimizer-type: Internal types
Type, pattern-type: Internal types
Type, variable-symbol: Internal types

U
unbound-inline-pattern: Internal conditions
unbound-optimizer: Internal conditions
unbound-pattern: Internal conditions

V
variable-symbol: Internal types

W
wildcard: Internal conditions

Jump to:   A   C   D   G   I   M   O   P   S   T   U   V   W