The cl-unification Reference Manual

This is the cl-unification Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:49:19 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 cl-unification

The CL-UNIFICATION system.

The system contains the definitions for the ’unification’ machinery.

Author

Marco Antoniotti

License

BSD

Source

cl-unification.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 cl-unification/cl-unification.asd

Source

cl-unification.asd.

Parent Component

cl-unification (system).

ASDF Systems

cl-unification.

Packages

cl-unification-system.

Public Interface

source-file-type (method).

Internals

asdf-system-definition-file (class).


3.1.2 cl-unification/cl-unification-pkg.lisp

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Packages

it.unimib.disco.ma.cl.ext.dacf.unification.


3.1.3 cl-unification/variables.lisp

Dependency

cl-unification-pkg.lisp (file).

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Public Interface
Internals

make-var-name (function).


3.1.4 cl-unification/substitutions.lisp

Dependency

variables.lisp (file).

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Public Interface
Internals

3.1.5 cl-unification/lambda-list-parsing.lisp

Dependency

substitutions.lisp (file).

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Internals

3.1.6 cl-unification/templates-hierarchy.lisp

Dependency

lambda-list-parsing.lisp (file).

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Public Interface
Internals

3.1.7 cl-unification/unifier.lisp

Dependency

templates-hierarchy.lisp (file).

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Public Interface
Internals

3.1.8 cl-unification/match-block.lisp

Dependency

unifier.lisp (file).

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Public Interface
Internals

3.1.9 cl-unification/apply-substitution.lisp

Dependency

match-block.lisp (file).

Source

cl-unification.asd.

Parent Component

cl-unification (system).

Public Interface

apply-substitution (generic function).

Internals

4 Packages

Packages are listed by definition order.


4.1 it.unimib.disco.ma.cl.ext.dacf.unification

The CL.EXT.DACF.UNIFICATION Package.

This package contains all the definitions necessary for the general Common Lisp unifier to work.
The package also has the "UNIFY" nickname.

Source

cl-unification-pkg.lisp.

Nicknames
  • cl.ext.dacf.unification
  • unify
  • unify
  • cl-unification
Use List

common-lisp.

Public Interface
Internals

4.2 cl-unification-system

Source

cl-unification.asd.

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

asdf-system-definition-file (class).


5 Definitions

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


5.1 Public Interface


5.1.1 Special variables

Special Variable: *unify-string-case-sensitive-p*
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.


5.1.2 Macros

Macro: match ((template object &key match-named substitution errorp error-value) &body forms)

Sets up a lexical environment to evaluate FORMS after an unification.
MATCH unifies a TEMPLATE and an OBJECT and then sets up a lexical environment where the variables present in the template are bound lexically. Note that both variable names ’?FOO’ and ’FOO’ are bound for convenience.

The MATCH form returns the values returned by the evaluation of the last of the FORMS.

If ERRORP is non-NIL (the default) then the form raises a UNIFICATION-FAILURE, otherwise the result of evaluating ERROR-VALUE, whose default is NIL is returned. (Note that UNIFICATION-FAILUREs raising from the evaluation of FORMS will also be caught and handled according to ERRORP settings.)

If MATCH-NAMED is not NIL, then a surrounding BLOCK named MATCH-NAMED is set up around the matching code.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

match-block.lisp.

Macro: match-case ((object &key errorp default-substitution match-case-named) &body clauses)

MATCH-CASE sets up a CASE-like environment for multiple template matching clauses.
The syntax of MATCH-CASE comprises a number of clauses of the form
<pre>
clause ::= regular-clause | default-clause
regular-clause ::= ’(’ template ’&body’ forms ’)’
default-clause ::= ’(’ t ’&body’ forms ’)’
| ’(’ ’otherwise’ ’&body’ forms ’)’
</pre>
’form’ and ’forms’ are regular Common Lisp forms.
’template’ is a unification template.

The full syntax of MATCH-CASE is
<pre>
match-case (object &key errorp default-substitution) clauses
</pre>
Each clause evaluates its forms in an environment where the variables
present in the template are bound lexically. Note that both variable
names ’?FOO’ and ’FOO’ are bound for convenience.

The values returned by the MATCH-CASE form are those of the last form in
the first clause that satisfies the match test.

If ERRORP is non-NIL then if none of the regular clauses matches, then
an error of type UNIFICATION-NON-EXAUSTIVE is signalled, regardless of
any default clause. Otherwise, the default clause behaves as a
standard CASE default clause. The default value of ERRORP is NIL.

MATCHING-NAMED is used as BLOCK name around the MATCHING machinery.

DEFAULT-SUBSTITUTION is the substitution to be used for the matching;
it defaults to the empty substitution.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

match-block.lisp.

Macro: matchf ((template object &key match-named substitution errorp error-value) &body forms)

Sets up a lexical environment to evaluate FORMS after an unification.
MATCHF unifies a TEMPLATE and an OBJECT and then sets up a lexical environment where the variables present in the template are bound lexically. Note that both variable names ’?FOO’ and ’FOO’ are bound for convenience.

MATCHF does not ’evaluate’ TEMPLATE (note that using the #T syntax will generate a template at read-time).

The MATCHF form returns the values returned by the evaluation of the last of the FORMS.

If ERRORP is non-NIL (the default) then the form raises a UNIFICATION-FAILURE, otherwise the result of evaluating ERROR-VALUE, whose default is NIL is returned. (Note that UNIFICATION-FAILUREs raising from the evaluation of FORMS will also be caught and handled according to ERRORP settings.)

If MATCH-NAMED is not NIL, then a surrounding BLOCK named MATCH-NAMED is set up around the matching code.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

match-block.lisp.

Macro: matchf-case ((object &key errorp default-substitution match-case-named) &body clauses)

MATCHF-CASE sets up a CASE-like environment for multiple template matching clauses.
The syntax of MATCHF-CASE comprises a number of clauses of the form
<pre>
clause ::= regular-clause | default-clause
regular-clause ::= ’(’ template ’&body’ forms ’)’
default-clause ::= ’(’ t ’&body’ forms ’)’
| ’(’ ’otherwise’ ’&body’ forms ’)’
</pre>
’form’ and ’forms’ are regular Common Lisp forms.
’template’ is a unification template.

The full syntax of MATCHF-CASE is

matchf-case (object &key errorp default-substitution) clauses

Each clause evaluates its forms in an environment where the variables
present in the template are bound lexically. Note that both variable
names ’?FOO’ and ’FOO’ are bound for convenience.

The values returned by the MATCH-CASE form are those of the last form in
the first clause that satisfies the match test.

If ERRORP is non-NIL then if none of the regular clauses matches, then
an error of type UNIFICATION-NON-EXAUSTIVE is signalled, regardless of
any default clause. Otherwise, the default clause behaves as a
standard CASE default clause. The default value of ERRORP is NIL.

MATCHING-NAMED is used as BLOCK name around the MATCHING machinery.

DEFAULT-SUBSTITUTION is the substitution to be used for the matching;
it defaults to the empty substitution.

Notes:

MATCHF-CASE behaves like MATCH-CASE, but the patterns are not
evaluated; i.e., it relies on MATCHF instead of MATCH to construct the
macro expansion.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

match-block.lisp.

Macro: matching ((&key errorp default-substitution matching-named) &rest match-clauses)

MATCHING sets up a COND-like environment for multiple template matching clauses.
The syntax of MATCHING comprises a number of clauses, collected in MATCH-CLAUSES, of the form
<pre>
clause ::= regular-clause | default-clause
regular-clause ::= ’(’ ’(’ template form ’)’ ’&body’ forms ’)’ default-clause ::= ’(’ ’t’ ’&body’ forms ’)’
| ’(’ ’otherwise’ ’&body’ forms ’)’
</pre>
’form’ and ’forms’ are regular Common Lisp forms.
’template’ is a unification template.

The full syntax of MATCHING is
<pre>
matching (&key errorp default-substitution) clauses
</pre>
Each clause evaluates its forms in an environment where the variables present in the template are bound lexically. Note that both variable
names ’?FOO’ and ’FOO’ are bound for convenience.

The values returned by the MATCHING form are those of the last form in
the first clause that satisfies the match test.

If ERRORP is non-NIL then if none of the regular clauses matches, then
an error of type UNIFICATION-NON-EXAUSTIVE is signalled, regardless of
any default clause. Otherwise, the default clause behaves as a
standard COND default clause. The default value of ERRORP is NIL.

MATCHING-NAMED is used as BLOCK name around the MATCHING machinery.

DEFAULT-SUBSTITUTION is the substitution to be used for the matching;
it defaults to the empty substitution.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

match-block.lisp.


5.1.3 Ordinary functions

Function: binding-value (b)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: (setf binding-value) (b)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: binding-variable (b)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: (setf binding-variable) (b)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: copy-environment (env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: empty-environment-p (env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: environment-p (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: extend-environment (var pat &optional env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: fill-environment (vars pats &optional env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: fill-environment* (vars-pats &optional env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: find-variable-value (variable &optional env errorp)

Finds the value associated to VARIABLE in ENV.

VARIABLE is a unification variable; if ERRORP is non-null an error is signaled if VARIABLE is not found in the environment ENV.

The function returns two values: the value associated to VARIABLE or
NIL, and an indication about whether an association was actually found
in ENV.

Arguments and Values:

VARIABLE : a unification variable
ENV : and ENVIRONMENT
ERRORP : a generalized Boolean
result : a T
foundp : a BOOLEAN

Exceptional Situations:

If an error is signaled, then it is an instance of UNIFICATION-VARIABLE-UNBOUND.

Notes:

FIND-VARIABLE-VALUE is almost symmetric to IS-VARIABLE-BOUND.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: make-empty-environment ()
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: make-shared-environment (env &optional pushp)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: new-var (&optional s package)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Alias for

make-var-name.

Function: pop-frame (env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: push-frame (env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: unify* (a b &optional env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Function: unify-equations (eqns &optional env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Function: unify-equations* (lhss rhss &optional env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Function: v? (s env &optional plain-symbol-p)

Finds the value associated to the variable S in ENV.

This function is essentialy a convenience wrapper around FIND-VARIABLE-VALUE. If PLAIN-SYMBOL-P is non-NIL, then the symbol S is ensured to be a ’unification variable’ (with a #? first character).

Exceptional Situations:

A UNIFICATION-VARIABLE-UNBOUND may be signaled is ERRORP is non-nil and no association si found for S in ENV.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: variable-any-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

variables.lisp.

Function: variablep (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

variables.lisp.


5.1.4 Generic functions

Generic Function: apply-substitution (substitution item &optional exclude-vars)

Applies a SUBSTITUTION to an ITEM.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

apply-substitution.lisp.

Methods
Method: apply-substitution ((substitution environment) (l null) &optional exclude-vars)
Method: apply-substitution ((substitution environment) (l cons) &optional exclude-vars)
Method: apply-substitution ((substitution environment) (s symbol) &optional exclude-vars)
Method: apply-substitution ((s environment) (n number) &optional exclude-vars)
Generic Function: aref-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: aref-template-p ((x aref-template))
Method: aref-template-p (x)
Generic Function: array-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: array-template-p ((x array-template))
Method: array-template-p (x)
Generic Function: collect-template-vars (template)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: collect-template-vars (template)
Method: collect-template-vars ((template array))
Method: collect-template-vars ((template vector))
Method: collect-template-vars ((template string))
Method: collect-template-vars ((template cons))
Method: collect-template-vars ((template null))
Method: collect-template-vars ((template symbol))
Method: collect-template-vars ((template number-template))
Method: collect-template-vars ((template symbol-template))
Method: collect-template-vars ((template template))
Generic Function: element-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: element-template-p ((x element-template))
Method: element-template-p (x)
Generic Function: elt-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: elt-template-p ((x elt-template))
Method: elt-template-p (x)
Generic Function: expression-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: expression-template-p ((x expression-template))
Method: expression-template-p (x)
Generic Function: make-template (kind spec)

The ’template’ factory.

Creates a TEMPLATE instance based on the values of KIND and SPEC.

Arguments and Values:

KIND : a T
SPEC : a T
result : a TEMPLATE

Exceptional Situations:

May signal an error if a particular combination of KIND and SPEC is either not consistent or handled.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: make-template ((kind (eql nthcdr)) (spec cons))
Method: make-template ((kind (eql nth)) (spec cons))
Method: make-template ((kind (eql aref)) (spec cons))
Method: make-template ((kind (eql elt)) (spec cons))
Method: make-template ((kind (eql subseq)) (spec cons))
Method: make-template ((kind (eql array)) (spec cons))
Method: make-template ((kind (eql string)) (spec cons))
Method: make-template ((kind (eql vector)) (spec cons))
Method: make-template ((kind (eql lambda)) (spec cons))
Method: make-template ((kind (eql it.unimib.disco.ma.cl.ext.dacf.unification::plist)) (spec cons))
Method: make-template ((kind (eql list)) (spec cons))
Method: make-template ((kind (eql sequence)) (spec cons))
Method: make-template ((kind number) (spec number))
Method: make-template ((kind cons) (spec cons))
Method: make-template ((kind symbol) (spec cons))
Method: make-template ((kind (eql symbol)) (spec cons))
Method: make-template ((kind symbol) (spec symbol))
Method: make-template ((kind null) (spec symbol))
Generic Function: nil-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: nil-template-p ((x nil-template))
Method: nil-template-p (x)
Generic Function: nth-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: nth-template-p ((x nth-template))
Method: nth-template-p (x)
Generic Function: nthcdr-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: nthcdr-template-p ((x nthcdr-template))
Method: nthcdr-template-p (x)
Generic Function: number-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: number-template-p ((x number-template))
Method: number-template-p (x)
Generic Function: standard-object-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: standard-object-template-p ((x standard-object-template))
Method: standard-object-template-p (x)
Generic Function: structure-object-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: structure-object-template-p ((x structure-object-template))
Method: structure-object-template-p (x)
Generic Function: symbol-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: symbol-template-p ((x symbol-template))
Method: symbol-template-p (x)
Generic Function: template-p (x)

Returns T if the argument X is a TEMPLATE.

Arguments and Values:

X : any object
result : a BOOLEAN

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: template-p ((x template))
Method: template-p (x)
Generic Reader: template-spec (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Methods
Reader Method: template-spec ((template template))

automatically generated reader method

Source

templates-hierarchy.lisp.

Target Slot

spec.

Generic Writer: (setf template-spec) (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Methods
Writer Method: (setf template-spec) ((template template))

automatically generated writer method

Source

templates-hierarchy.lisp.

Target Slot

spec.

Generic Function: type-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: type-template-p ((x type-template))
Method: type-template-p (x)
Generic Function: unify (a b &optional env &key case-sensitive &allow-other-keys)

Unifies two objects A and B given a substitution ENV.
A is a Common Lisp object and B is either a Common Lisp object or a "template", A and B can be commuted.

The unification rules are rather complex. Each method of the generic function implements a specific rule of unification.

The generic function returns a ‘substitution’ upon success or it signals a UNIFICATION-FAILURE condition upon failure.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Methods
Method: unify ((b nth-template) (a list) &optional env &key &allow-other-keys)
Method: unify ((a list) (b nth-template) &optional env &key &allow-other-keys)
Method: unify ((b elt-template) (a sequence) &optional env &key &allow-other-keys)
Method: unify ((a list) (b elt-template) &optional env &key &allow-other-keys)
Method: unify ((a vector) (b elt-template) &optional env &key &allow-other-keys)
Method: unify ((a sequence) (b elt-template) &optional env &key &allow-other-keys)
Method: unify ((b aref-template) (a array) &optional env &key &allow-other-keys)
Method: unify ((a vector) (b aref-template) &optional env &key &allow-other-keys)
Method: unify ((a array) (b aref-template) &optional env &key &allow-other-keys)
Method: unify ((b subseq-template) (a sequence) &optional env &key &allow-other-keys)
Method: unify ((a vector) (b subseq-template) &optional env &key &allow-other-keys)
Method: unify ((a list) (b subseq-template) &optional env &key &allow-other-keys)
Method: unify ((a sequence) (b subseq-template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a structure-object) &optional env &key &allow-other-keys)
Method: unify ((a structure-object) (b structure-object-template) &optional env &key &allow-other-keys)
Method: unify ((a structure-object) (b template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a standard-object) &optional env &key &allow-other-keys)
Method: unify ((a standard-object) (b standard-object-template) &optional env &key &allow-other-keys)
Method: unify ((a standard-object) (b template) &optional env &key &allow-other-keys)
Method: unify ((a array) (b array-template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a array) &optional env &key &allow-other-keys)
Method: unify ((a array) (b template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a vector) &optional env &key &allow-other-keys)
Method: unify ((a vector) (b sequence-template) &optional env &key &allow-other-keys)
Method: unify ((a vector) (b template) &optional env &key &allow-other-keys)
Method: unify ((a list) (b plist-template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a list) &optional env &key &allow-other-keys)
Method: unify ((a list) (b sequence-template) &optional env &key &allow-other-keys)
Method: unify ((a list) (b template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a sequence) &optional env &key &allow-other-keys)
Method: unify ((a sequence) (b template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a number) &optional env &key &allow-other-keys)
Method: unify ((a number) (b template) &optional env &key &allow-other-keys)
Method: unify :before ((a number) (b number-template) &optional env &key &allow-other-keys)
Method: unify ((b number-template) (a number) &optional env &key &allow-other-keys)
Method: unify ((a number) (b number-template) &optional env &key &allow-other-keys)
Method: unify ((b template) (a symbol) &optional env &key &allow-other-keys)
Method: unify ((a symbol) (b template) &optional env &key &allow-other-keys)
Method: unify ((b symbol-template) (a symbol) &optional env &key &allow-other-keys)
Method: unify ((a symbol) (b symbol-template) &optional env &key &allow-other-keys)
Method: unify ((nt1 nil-template) (nt2 nil-template) &optional env &key &allow-other-keys)
Method: unify ((nt nil-template) (x null) &optional env &key &allow-other-keys)
Method: unify ((x null) (nt nil-template) &optional env &key &allow-other-keys)
Method: unify ((x null) (y null) &optional env &key &allow-other-keys)
Method: unify ((x template) (y template) &optional env &key &allow-other-keys)
Method: unify (a b &optional env &key &allow-other-keys)
Method: unify ((as array) (bs array) &optional env &key &allow-other-keys)
Method: unify ((s1 sequence) (s2 sequence) &optional env &key &allow-other-keys)
Method: unify ((as vector) (bs vector) &optional env &key &allow-other-keys)
Method: unify ((b array) (a symbol) &optional env &key &allow-other-keys)
Method: unify ((a symbol) (b array) &optional env &key &allow-other-keys)
Method: unify (b (a symbol) &optional env &key &allow-other-keys)
Method: unify ((a symbol) b &optional env &key &allow-other-keys)
Method: unify ((a symbol) (b symbol) &optional env &key &allow-other-keys)
Method: unify ((b string) (a symbol) &optional env &key &allow-other-keys)
Method: unify ((a symbol) (b string) &optional env &key &allow-other-keys)
Method: unify ((a string) (b string) &optional env &key case-sensitive &allow-other-keys)

Unifies two strings A and B.
Two strings A and B unify if and only if they satisfy either #’STRING= or #’STRING-EQUAL. The choice of which of test to perform (#’STRING= or #’STRING-EQUAL) is made according to the value of the variable
*UNIFY-STRING-CASE-SENSITIVE-P*, which defaults to T.
If A and B unify then an unmodified environment ENV is returned,
otherwise an error of type UNIFICATION-FAILURE is signaled.

Method: unify ((a character) (b character) &optional env &key case-sensitive &allow-other-keys)

Unifies two strings A and B.
Two CHARACTERs A and B unify if and only if they satisfy either #’CHAR= or #’CHAR-EQUAL. The choice of which of test to perform (#’CHAR= or #’CHAR-EQUAL) is made according to the value of the variable *UNIFY-STRING-CASE-SENSITIVE-P*, which defaults to T.
If A and B unify then an unmodified environment ENV is returned,
otherwise an error of type UNIFICATION-FAILURE is signaled.

Method: unify ((a number) (b number) &optional env &key &allow-other-keys)

Unifies two numbers A and B.
Two numbers unify only if and only if they are equal as per the function #’=, in which case an unmodified envirironment ENV is returned.
Otherwise an error of type UNIFICATION-FAILURE is signalled.
Of course, asking for unification of two floating point numbers may
not yield the expected result.

Method: unify ((a list) (b list) &optional env &key &allow-other-keys)

Unifies a list A and a list B in an environment ENV.
The unification procedure proceedes recursively on each element of both lists. If two elements cannot be unified then an error of type UNIFICATION-FAILURE is signaled. Otherwise a possibly extended environment is returned.

Method: unify ((b list) (a symbol) &optional env &key &allow-other-keys)

Unifies a symbol B and a list A in an environment ENV.
If A is not a variable then an error of type UNIFICATION-FAILURE is signaled. If A is a unification variable, then the environment ENV is extended with a binding for A to B, unless the occurrence check is called and fails, in which case an error is signaled.

Method: unify ((a symbol) (b list) &optional env &key &allow-other-keys)

Unifies a symbol A and a list B in an environment ENV.
If A is not a variable then an error of type UNIFICATION-FAILURE is signaled. If A is a unification variable, then the environment ENV is extended with a binding for A to B, unless the occurrence check is called and fails, in which case an error is signaled.


5.1.5 Standalone methods

Method: initialize-instance :after ((nt number-template) &key spec &allow-other-keys)
Source

templates-hierarchy.lisp.

Method: initialize-instance :before ((nt number-template) &key spec &allow-other-keys)
Source

templates-hierarchy.lisp.

Method: make-load-form ((x template) &optional env)
Source

templates-hierarchy.lisp.

Method: print-object ((template template) stream)
Source

templates-hierarchy.lisp.

Method: print-object ((object environment) stream)
Source

substitutions.lisp.

Method: source-file-type ((c asdf-system-definition-file) (s module))
Package

asdf/component.

Source

cl-unification.asd.


5.1.6 Conditions

Condition: unification-failure
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Direct superclasses

simple-error.

Direct subclasses

unification-non-exhaustive.

Condition: unification-variable-unbound

This is the condition that is signaled

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Direct superclasses

unbound-variable.


5.1.7 Structures

Structure: environment

The ENVIRONMENT structure.

The data structure containing the associations (bindings) between variables and values.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Direct superclasses

structure-object.

Direct methods
Direct slots
Slot: frames
Type

list

Readers

environment-frames.

Writers

(setf environment-frames).


5.1.8 Classes

Class: aref-template

The AREF-TEMPLATE Class.

The instances of this class are those object that are used to unify
against a particular element of an ARRAY.

The syntax of these templates is the following:

<pre>
#T(<b>aref</b> (<i>index1</i> ... <i>indexN</i>) <i>item</i>)
</pre>

<pre>
#T(<b>aref</b> <i>index</i> <i>item</i>)
</pre>

The AREF-TEMPLATE syntax denotes the <i>item</i> at <i>index1</i> ...
<i>indexN</i> of an ARRAY. An AREF-TEMPLATE must be unified against a
ARRAY object. <i>item</i> is <em>unified</em> against the element
extracted from the sequence object at <i>index1</i> ... <i>indexN</i>
by the standard function AREF.

The second form is a shorthand.

<pre>
#T(<b>aref</b> <i>index</i> <i>item</i>) <==> #T(<b>aref</b> (<i>index</i>) <i>item</i>) </pre>

Examples:

cl-prompt> (setf e (unify #(0 1 42 3 4 5) #T(aref 2 ?x)))
#<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
42

cl-prompt> (setq e (unify #(0 1 42 3 4 5) #T(aref 42 ?x)))
==> Error: index 42 out of bounds.

cl-prompt> (setq e (unify 42 #T(aref 42 ?x)))
==> Error: UNIFICATION-FAILURE

cl-prompt> (setq e (unify "This is a string!" #T(aref 4 ?x)))
#<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
#\Space

cl-prompt> (setq e (unify #2A((1 0) (foo bar)) #T(aref (1 1) ?x)))
#<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
BAR

cl-prompt> (setq e (unify #2A((1 0) (foo bar)) #T(aref (1 1) baz)))
==> Error: UNIFICATION-FAILURE

cl-prompt> (setq e (unify #2A((1 0) (foo ?x)) #T(aref (1 1) baz)))
#<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
BAZ

Exceptional Situations:

Unifying an AREF-TEMPLATE against a non-ARRAY object results in an
UNIFICATION-FAILURE error being signaled.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

element-template.

Direct methods
Class: array-template

The ARRAY-TEMPLATE Class.

The instances of this class are objects that can be used to unify
against arrays.

The syntax of this particular template is the following:
<pre>
#T(array &lt;shape-template&gt;)
</pre>

<pre>
#T(&lt;CL array type specifier&gt; &lt;shape-template&gt;)
</pre>

<pre>
#T(array ([* | &lt;CL type specifier&gt;] [&lt;dimension spec&gt;]) &lt;shape-template&gt;) </pre>

Where &lt;shape-template&gt; can be:

<pre>
&lt;shape-template&gt; ::= &lt;sequence-template&gt;
| &lt;destructuring template lambda list&gt;
| (&lt;shape-template&gt;)
</pre>

The ARRAY-TEMPLATE syntax denotes an ARRAY object. An ARRAY-TEMPLATE
must be unified against an ARRAY object. The elements of the array
must be unified against the &lt;shape-template&gt;. Each row of the
array is unified recursively against each element of the
&lt;shape-template&gt;.

Examples:

cl-prompt> (setf e (unify #(0 1 42 3 4 5) #T(array (0 1 ?x 3 4 5))))
#<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
42

cl-prompt> (setq e (unify #(0 1 42 3 4 5) #T(array (0 1 "FOO" 3 4 5))))
==> Error: UNIFICATION-FAILURE

cl-prompt> (setq e (unify #2A((0 1 42) (3 4 5)) #T(array ((0 1 ?x) (3 4 5)))))
#<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
42

cl-prompt> (setq e (unify #2A(("foo" "bar" 42) (3 4 5)) #T(array ((_ _ ?x) (3 4 5))))) #<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
42

cl-prompt> (setq e (unify #2A(("foo" "bar" 42) (3 4 5)) #T(array (#T(vector _ &rest ?x) (3 4 5))))) #<ENVIRONMENT xxx>

cl-prompt> (find-variable-value ’?x e)
#("bar" 42)

Exceptional Situations:

Unifying an ARRAY-TEMPLATE against a non-ARRAY object results in an
UNIFICATION-FAILURE error being signaled.

Notes:

<h3>Syntax Note</h3>

The ARRAY-TEMPLATE syntax tries to be easy to use, at the cost of
being overloaded. There is no actual need to have the separate
forms <code>(<b>array</b> (fixnum) ...)</code> and
<code>((<b>array</b> fixnum) ...)</code>.

In a future release they may be conflated. For the time being
they are kept separate as it is unclear which would be better to
provide.

<h3>Elements Unification</h3>

It would be nice to have the possibility to unify against
<em>slices</em> of the array. Alas, this seems non trivial to get
right, and it is left as a future extension of the semantics of
<i>&lt;shape-template&gt;</i>.

<h3>ARRAY Structural Properties</h3>

For the time being, there is no way to "unify" against structural
properties of vectors like fill pointers and displacements.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

type-template.

Direct subclasses

vector-template.

Direct methods
Class: element-template

The ELEMENT-TEMPLATE Class.

The instances of this class are those object that are used to unify against a particular element of an ARRAY or a SEQUENCE.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

expression-template.

Direct subclasses
Direct methods

element-template-p.

Class: elt-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

element-template.

Direct methods
Class: expression-template

The EXPRESSION-TEMPLATE Class.

This class is the root of the ’expression template’ sub-hierarchy.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

template.

Direct subclasses
Direct methods

expression-template-p.

Class: nil-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

type-template.

Direct methods
Class: nth-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

element-template.

Direct methods
Class: nthcdr-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

element-template.

Direct methods

nthcdr-template-p.

Class: number-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

type-template.

Direct methods
Class: standard-object-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

type-template.

Direct methods
Class: structure-object-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

type-template.

Direct methods
Class: symbol-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

type-template.

Direct methods
Class: template

The TEMPLATE Class.

The root of the hierarchy of template objects.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:specnil
Direct slots
Slot: spec
Type

(or symbol cons)

Initargs

:spec

Readers

template-spec.

Writers

(setf template-spec).

Class: type-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

template.

Direct subclasses
Direct methods

5.1.9 Types

Type: substitution ()

The SUBSTITUTION type.

The type representing the associations between variables and values.

Notes:

It is a synonim for the structure type ENVIRONMENT.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.


5.2 Internals


5.2.1 Special variables

Special Variable: *known-number-template-constants*
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Special Variable: *null-environment*
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Special Variable: *occurrence-check-p*
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.


5.2.2 Ordinary functions

Function: aref-template-element (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: aref-template-indexes (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: array-template-dimensions (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: array-template-element-type (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: array-template-shape-template (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: aux-lambda-var-info-default-value (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: aux-lambda-var-info-name (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: aux-lambda-var-info-name-for-supplied-indicator (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: aux-lambda-var-info-p (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: aux-lambda-var-info-type (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: bindings-keys (bindings)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: bindings-values (bindings)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: clean-unify-var-name (v)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

match-block.lisp.

Function: compose-substitutions (env2 env1)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

apply-substitution.lisp.

Function: copy-aux-lambda-var-info (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: copy-frame (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: copy-key-lambda-var-info (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: copy-lambda-var-info (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: copy-optional-lambda-var-info (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: copy-rest-lambda-var-info (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: dump-environment (env &optional out)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: dump-frame (f &optional out)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: empty-frame-p (f)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Reader: environment-frames (instance)
Writer: (setf environment-frames) (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Target Slot

frames.

Function: environment-values (env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: environment-variables (env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: extend-bindings (variable value bindings)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: find-variable-binding (variable &optional env)

Finds a BINDING for a VARIABLE in ENV.

The function returns a BINDING for VARIABLE in ENV, if it finds one. Otherwise returns NIL.

Arguments and Values:

VARIABLE : a unification variable
ENV : and ENVIRONMENT
result : a BINDING or NIL.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: find-variable-binding-in-frame (v f)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: find-variable-value-in-frame (v f)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: first-frame (env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Reader: frame-bindings (instance)
Writer: (setf frame-bindings) (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Target Slot

bindings.

Function: frame-p (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: frame-values (frame)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: frame-variables (frame)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: ground-term (term &optional substitution)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

apply-substitution.lisp.

Function: is-variable-bound (variable &optional env)

Checks whether a VARIABLE is bound in ENV.

The function returns two values: a BOOLEAN that indicates whether VARIABLE is bound in ENV and its value if so; otherwise the second value is NIL.

Arguments and Values:

VARIABLE : a unification variable
ENV : and ENVIRONMENT
bounddp : a BOOLEAN
result : a T

Notes:

IS-VARIABLE-BOUND is almost symmetric to FIND-VARIABLE-VALUE.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: key-lambda-var-info-default-value (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Reader: key-lambda-var-info-keyword-name (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Target Slot

keyword-name.

Function: key-lambda-var-info-name (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: key-lambda-var-info-name-for-supplied-indicator (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: key-lambda-var-info-p (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: key-lambda-var-info-type (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Reader: lambda-var-info-name (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Target Slot

name.

Function: lambda-var-info-p (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Reader: lambda-var-info-type (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Target Slot

type.

Function: make-aux-lambda-var-info (&key name type default-value name-for-supplied-indicator)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: make-binding (variable value)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: make-environment (&key frames)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: make-frame (&optional bindings)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: make-key-lambda-var-info (&key name type default-value name-for-supplied-indicator keyword-name)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: make-lambda-var-info (&key name type)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: make-optional-lambda-var-info (&key name type default-value name-for-supplied-indicator)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: make-rest-lambda-var-info (&key name type element-type)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: make-var-name (&optional s package)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

variables.lisp.

Function: normalize-lambda-list (lambda-list)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: number-template-number (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: number-template-numeric-class (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: number-template-numeric-type (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Reader: optional-lambda-var-info-default-value (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Target Slot

default-value.

Function: optional-lambda-var-info-name (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Reader: optional-lambda-var-info-name-for-supplied-indicator (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Target Slot

name-for-supplied-indicator.

Function: optional-lambda-var-info-p (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: optional-lambda-var-info-type (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: parse-auxiliary-var-type-info (var)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: parse-extended-ordinary-lambda-list (lambda-list &key ordinary-variable-test optional-variable-test rest-variable-test key-variable-test aux-variable-test)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: parse-key-var-type-info (var)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: parse-optional-var-type-info (var)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: parse-rest-var-type-info (var)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: parse-var-type-info (var)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: print-environment (env stream)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Reader: rest-lambda-var-info-element-type (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Target Slot

element-type.

Function: rest-lambda-var-info-name (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: rest-lambda-var-info-p (object)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: rest-lambda-var-info-type (instance)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: sequence-template-lambda-list (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: sharp-t-reader (stream subchar arg)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: standard-object-template-class (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: standard-object-template-slots (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: structure-object-template-class (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: structure-object-template-slots (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: substitution-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Function: symbol-or-cons-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: symbol-template-symbol (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: type-is-t-p (type-spec)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: type-specifier-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Function: unify-array-row (array dims shape-template indexes env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Function: unify-array-rows (array shape-template env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Function: valid-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Function: var-unify (var pat env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Function: vector-template-element-type (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Function: vector-template-size (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.


5.2.3 Generic functions

Generic Reader: lambda-list-parsing-error-item (condition)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Methods
Reader Method: lambda-list-parsing-error-item ((condition lambda-list-parsing-error))
Source

lambda-list-parsing.lisp.

Target Slot

item.

Generic Function: lambda-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: lambda-template-p ((x lambda-template))
Method: lambda-template-p (x)
Generic Function: list-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: list-template-p ((x list-template))
Method: list-template-p (x)
Generic Function: occurs-in-p (var pat env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Methods
Method: occurs-in-p (var pat env)
Method: occurs-in-p ((var symbol) pat env)
Method: occurs-in-p ((var symbol) (pat template) env)
Method: occurs-in-p ((var symbol) (pat character) env)
Method: occurs-in-p ((var symbol) (pat number) env)
Method: occurs-in-p ((var symbol) (pat string) env)
Method: occurs-in-p ((var symbol) (pat vector) env)
Method: occurs-in-p ((var symbol) (pat array) env)
Method: occurs-in-p ((var symbol) (pat null) env)
Method: occurs-in-p ((var symbol) (pat list) env)
Method: occurs-in-p ((var symbol) (pat symbol) env)
Generic Function: plist-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: plist-template-p ((x plist-template))
Method: plist-template-p (x)
Generic Function: sequence-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: sequence-template-p ((x sequence-template))
Method: sequence-template-p (x)
Generic Function: string-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: string-template-p ((x string-template))
Method: string-template-p (x)
Generic Function: subseq-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: subseq-template-p ((x subseq-template))
Method: subseq-template-p (x)
Generic Function: type-template-type-spec (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: type-template-type-spec ((x type-template))
Generic Function: untyped-unify (a b &optional env)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

unifier.lisp.

Methods
Method: untyped-unify (a b &optional env)
Method: untyped-unify ((as vector) (bs list) &optional env)
Method: untyped-unify ((as list) (bs vector) &optional env)
Generic Function: vector-template-p (x)
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Methods
Method: vector-template-p ((x vector-template))
Method: vector-template-p (x)

5.2.4 Conditions

Condition: lambda-list-parsing-error
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Direct superclasses

program-error.

Direct methods

lambda-list-parsing-error-item.

Direct slots
Slot: item
Initargs

:item

Readers

lambda-list-parsing-error-item.

Writers

This slot is read-only.

Condition: unification-non-exhaustive

Condition thrown by ’match’ forms.

The condition UNIFICATION-FAILURE is thrown by ’match’ forms when it can be established that there are other possible unifications for a template.

Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

match-block.lisp.

Direct superclasses

unification-failure.

Condition: unification-template-error
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

simple-error.


5.2.5 Structures

Structure: aux-lambda-var-info
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Direct superclasses

optional-lambda-var-info.

Structure: frame
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: bindings
Type

it.unimib.disco.ma.cl.ext.dacf.unification::bindings

Readers

frame-bindings.

Writers

(setf frame-bindings).

Structure: key-lambda-var-info
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Direct superclasses

optional-lambda-var-info.

Direct slots
Slot: keyword-name
Readers

key-lambda-var-info-keyword-name.

Writers

This slot is read-only.

Structure: lambda-var-info
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Direct superclasses

structure-object.

Direct subclasses
Direct slots
Slot: name
Readers

lambda-var-info-name.

Writers

This slot is read-only.

Slot: type
Package

common-lisp.

Initform

t

Readers

lambda-var-info-type.

Writers

This slot is read-only.

Structure: optional-lambda-var-info
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Direct superclasses

lambda-var-info.

Direct subclasses
Direct slots
Slot: default-value
Readers

optional-lambda-var-info-default-value.

Writers

This slot is read-only.

Slot: name-for-supplied-indicator
Readers

optional-lambda-var-info-name-for-supplied-indicator.

Writers

This slot is read-only.

Structure: rest-lambda-var-info
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

lambda-list-parsing.lisp.

Direct superclasses

lambda-var-info.

Direct slots
Slot: element-type
Initform

t

Readers

rest-lambda-var-info-element-type.

Writers

This slot is read-only.


5.2.6 Classes

Class: asdf-system-definition-file
Package

cl-unification-system.

Source

cl-unification.asd.

Direct superclasses

cl-source-file.

Direct methods

source-file-type.

Class: lambda-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses
Direct methods

lambda-template-p.

Class: list-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

sequence-template.

Direct subclasses
Direct methods

list-template-p.

Class: plist-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

list-template.

Direct methods
Class: sequence-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

type-template.

Direct subclasses
Direct methods
Class: string-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

vector-template.

Direct methods

string-template-p.

Class: subseq-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses

expression-template.

Direct methods
Class: vector-template
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

templates-hierarchy.lisp.

Direct superclasses
Direct subclasses

string-template.

Direct methods

vector-template-p.


5.2.7 Types

Type: binding ()
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.

Type: bindings ()
Package

it.unimib.disco.ma.cl.ext.dacf.unification.

Source

substitutions.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

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

(
(setf binding-value): Public ordinary functions
(setf binding-variable): Public ordinary functions
(setf environment-frames): Private ordinary functions
(setf frame-bindings): Private ordinary functions
(setf template-spec): Public generic functions
(setf template-spec): Public generic functions

A
apply-substitution: Public generic functions
apply-substitution: Public generic functions
apply-substitution: Public generic functions
apply-substitution: Public generic functions
apply-substitution: Public generic functions
aref-template-element: Private ordinary functions
aref-template-indexes: Private ordinary functions
aref-template-p: Public generic functions
aref-template-p: Public generic functions
aref-template-p: Public generic functions
array-template-dimensions: Private ordinary functions
array-template-element-type: Private ordinary functions
array-template-p: Public generic functions
array-template-p: Public generic functions
array-template-p: Public generic functions
array-template-shape-template: Private ordinary functions
aux-lambda-var-info-default-value: Private ordinary functions
aux-lambda-var-info-name: Private ordinary functions
aux-lambda-var-info-name-for-supplied-indicator: Private ordinary functions
aux-lambda-var-info-p: Private ordinary functions
aux-lambda-var-info-type: Private ordinary functions

B
binding-value: Public ordinary functions
binding-variable: Public ordinary functions
bindings-keys: Private ordinary functions
bindings-values: Private ordinary functions

C
clean-unify-var-name: Private ordinary functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
collect-template-vars: Public generic functions
compose-substitutions: Private ordinary functions
copy-aux-lambda-var-info: Private ordinary functions
copy-environment: Public ordinary functions
copy-frame: Private ordinary functions
copy-key-lambda-var-info: Private ordinary functions
copy-lambda-var-info: Private ordinary functions
copy-optional-lambda-var-info: Private ordinary functions
copy-rest-lambda-var-info: Private ordinary functions

D
dump-environment: Private ordinary functions
dump-frame: Private ordinary functions

E
element-template-p: Public generic functions
element-template-p: Public generic functions
element-template-p: Public generic functions
elt-template-p: Public generic functions
elt-template-p: Public generic functions
elt-template-p: Public generic functions
empty-environment-p: Public ordinary functions
empty-frame-p: Private ordinary functions
environment-frames: Private ordinary functions
environment-p: Public ordinary functions
environment-values: Private ordinary functions
environment-variables: Private ordinary functions
expression-template-p: Public generic functions
expression-template-p: Public generic functions
expression-template-p: Public generic functions
extend-bindings: Private ordinary functions
extend-environment: Public ordinary functions

F
fill-environment: Public ordinary functions
fill-environment*: Public ordinary functions
find-variable-binding: Private ordinary functions
find-variable-binding-in-frame: Private ordinary functions
find-variable-value: Public ordinary functions
find-variable-value-in-frame: Private ordinary functions
first-frame: Private ordinary functions
frame-bindings: Private ordinary functions
frame-p: Private ordinary functions
frame-values: Private ordinary functions
frame-variables: Private ordinary functions
Function, (setf binding-value): Public ordinary functions
Function, (setf binding-variable): Public ordinary functions
Function, (setf environment-frames): Private ordinary functions
Function, (setf frame-bindings): Private ordinary functions
Function, aref-template-element: Private ordinary functions
Function, aref-template-indexes: Private ordinary functions
Function, array-template-dimensions: Private ordinary functions
Function, array-template-element-type: Private ordinary functions
Function, array-template-shape-template: Private ordinary functions
Function, aux-lambda-var-info-default-value: Private ordinary functions
Function, aux-lambda-var-info-name: Private ordinary functions
Function, aux-lambda-var-info-name-for-supplied-indicator: Private ordinary functions
Function, aux-lambda-var-info-p: Private ordinary functions
Function, aux-lambda-var-info-type: Private ordinary functions
Function, binding-value: Public ordinary functions
Function, binding-variable: Public ordinary functions
Function, bindings-keys: Private ordinary functions
Function, bindings-values: Private ordinary functions
Function, clean-unify-var-name: Private ordinary functions
Function, compose-substitutions: Private ordinary functions
Function, copy-aux-lambda-var-info: Private ordinary functions
Function, copy-environment: Public ordinary functions
Function, copy-frame: Private ordinary functions
Function, copy-key-lambda-var-info: Private ordinary functions
Function, copy-lambda-var-info: Private ordinary functions
Function, copy-optional-lambda-var-info: Private ordinary functions
Function, copy-rest-lambda-var-info: Private ordinary functions
Function, dump-environment: Private ordinary functions
Function, dump-frame: Private ordinary functions
Function, empty-environment-p: Public ordinary functions
Function, empty-frame-p: Private ordinary functions
Function, environment-frames: Private ordinary functions
Function, environment-p: Public ordinary functions
Function, environment-values: Private ordinary functions
Function, environment-variables: Private ordinary functions
Function, extend-bindings: Private ordinary functions
Function, extend-environment: Public ordinary functions
Function, fill-environment: Public ordinary functions
Function, fill-environment*: Public ordinary functions
Function, find-variable-binding: Private ordinary functions
Function, find-variable-binding-in-frame: Private ordinary functions
Function, find-variable-value: Public ordinary functions
Function, find-variable-value-in-frame: Private ordinary functions
Function, first-frame: Private ordinary functions
Function, frame-bindings: Private ordinary functions
Function, frame-p: Private ordinary functions
Function, frame-values: Private ordinary functions
Function, frame-variables: Private ordinary functions
Function, ground-term: Private ordinary functions
Function, is-variable-bound: Private ordinary functions
Function, key-lambda-var-info-default-value: Private ordinary functions
Function, key-lambda-var-info-keyword-name: Private ordinary functions
Function, key-lambda-var-info-name: Private ordinary functions
Function, key-lambda-var-info-name-for-supplied-indicator: Private ordinary functions
Function, key-lambda-var-info-p: Private ordinary functions
Function, key-lambda-var-info-type: Private ordinary functions
Function, lambda-var-info-name: Private ordinary functions
Function, lambda-var-info-p: Private ordinary functions
Function, lambda-var-info-type: Private ordinary functions
Function, make-aux-lambda-var-info: Private ordinary functions
Function, make-binding: Private ordinary functions
Function, make-empty-environment: Public ordinary functions
Function, make-environment: Private ordinary functions
Function, make-frame: Private ordinary functions
Function, make-key-lambda-var-info: Private ordinary functions
Function, make-lambda-var-info: Private ordinary functions
Function, make-optional-lambda-var-info: Private ordinary functions
Function, make-rest-lambda-var-info: Private ordinary functions
Function, make-shared-environment: Public ordinary functions
Function, make-var-name: Private ordinary functions
Function, new-var: Public ordinary functions
Function, normalize-lambda-list: Private ordinary functions
Function, number-template-number: Private ordinary functions
Function, number-template-numeric-class: Private ordinary functions
Function, number-template-numeric-type: Private ordinary functions
Function, optional-lambda-var-info-default-value: Private ordinary functions
Function, optional-lambda-var-info-name: Private ordinary functions
Function, optional-lambda-var-info-name-for-supplied-indicator: Private ordinary functions
Function, optional-lambda-var-info-p: Private ordinary functions
Function, optional-lambda-var-info-type: Private ordinary functions
Function, parse-auxiliary-var-type-info: Private ordinary functions
Function, parse-extended-ordinary-lambda-list: Private ordinary functions
Function, parse-key-var-type-info: Private ordinary functions
Function, parse-optional-var-type-info: Private ordinary functions
Function, parse-rest-var-type-info: Private ordinary functions
Function, parse-var-type-info: Private ordinary functions
Function, pop-frame: Public ordinary functions
Function, print-environment: Private ordinary functions
Function, push-frame: Public ordinary functions
Function, rest-lambda-var-info-element-type: Private ordinary functions
Function, rest-lambda-var-info-name: Private ordinary functions
Function, rest-lambda-var-info-p: Private ordinary functions
Function, rest-lambda-var-info-type: Private ordinary functions
Function, sequence-template-lambda-list: Private ordinary functions
Function, sharp-t-reader: Private ordinary functions
Function, standard-object-template-class: Private ordinary functions
Function, standard-object-template-slots: Private ordinary functions
Function, structure-object-template-class: Private ordinary functions
Function, structure-object-template-slots: Private ordinary functions
Function, substitution-p: Private ordinary functions
Function, symbol-or-cons-p: Private ordinary functions
Function, symbol-template-symbol: Private ordinary functions
Function, type-is-t-p: Private ordinary functions
Function, type-specifier-p: Private ordinary functions
Function, unify*: Public ordinary functions
Function, unify-array-row: Private ordinary functions
Function, unify-array-rows: Private ordinary functions
Function, unify-equations: Public ordinary functions
Function, unify-equations*: Public ordinary functions
Function, v?: Public ordinary functions
Function, valid-template-p: Private ordinary functions
Function, var-unify: Private ordinary functions
Function, variable-any-p: Public ordinary functions
Function, variablep: Public ordinary functions
Function, vector-template-element-type: Private ordinary functions
Function, vector-template-size: Private ordinary functions

G
Generic Function, (setf template-spec): Public generic functions
Generic Function, apply-substitution: Public generic functions
Generic Function, aref-template-p: Public generic functions
Generic Function, array-template-p: Public generic functions
Generic Function, collect-template-vars: Public generic functions
Generic Function, element-template-p: Public generic functions
Generic Function, elt-template-p: Public generic functions
Generic Function, expression-template-p: Public generic functions
Generic Function, lambda-list-parsing-error-item: Private generic functions
Generic Function, lambda-template-p: Private generic functions
Generic Function, list-template-p: Private generic functions
Generic Function, make-template: Public generic functions
Generic Function, nil-template-p: Public generic functions
Generic Function, nth-template-p: Public generic functions
Generic Function, nthcdr-template-p: Public generic functions
Generic Function, number-template-p: Public generic functions
Generic Function, occurs-in-p: Private generic functions
Generic Function, plist-template-p: Private generic functions
Generic Function, sequence-template-p: Private generic functions
Generic Function, standard-object-template-p: Public generic functions
Generic Function, string-template-p: Private generic functions
Generic Function, structure-object-template-p: Public generic functions
Generic Function, subseq-template-p: Private generic functions
Generic Function, symbol-template-p: Public generic functions
Generic Function, template-p: Public generic functions
Generic Function, template-spec: Public generic functions
Generic Function, type-template-p: Public generic functions
Generic Function, type-template-type-spec: Private generic functions
Generic Function, unify: Public generic functions
Generic Function, untyped-unify: Private generic functions
Generic Function, vector-template-p: Private generic functions
ground-term: Private ordinary functions

I
initialize-instance: Public standalone methods
initialize-instance: Public standalone methods
is-variable-bound: Private ordinary functions

K
key-lambda-var-info-default-value: Private ordinary functions
key-lambda-var-info-keyword-name: Private ordinary functions
key-lambda-var-info-name: Private ordinary functions
key-lambda-var-info-name-for-supplied-indicator: Private ordinary functions
key-lambda-var-info-p: Private ordinary functions
key-lambda-var-info-type: Private ordinary functions

L
lambda-list-parsing-error-item: Private generic functions
lambda-list-parsing-error-item: Private generic functions
lambda-template-p: Private generic functions
lambda-template-p: Private generic functions
lambda-template-p: Private generic functions
lambda-var-info-name: Private ordinary functions
lambda-var-info-p: Private ordinary functions
lambda-var-info-type: Private ordinary functions
list-template-p: Private generic functions
list-template-p: Private generic functions
list-template-p: Private generic functions

M
Macro, match: Public macros
Macro, match-case: Public macros
Macro, matchf: Public macros
Macro, matchf-case: Public macros
Macro, matching: Public macros
make-aux-lambda-var-info: Private ordinary functions
make-binding: Private ordinary functions
make-empty-environment: Public ordinary functions
make-environment: Private ordinary functions
make-frame: Private ordinary functions
make-key-lambda-var-info: Private ordinary functions
make-lambda-var-info: Private ordinary functions
make-load-form: Public standalone methods
make-optional-lambda-var-info: Private ordinary functions
make-rest-lambda-var-info: Private ordinary functions
make-shared-environment: Public ordinary functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-template: Public generic functions
make-var-name: Private ordinary functions
match: Public macros
match-case: Public macros
matchf: Public macros
matchf-case: Public macros
matching: Public macros
Method, (setf template-spec): Public generic functions
Method, apply-substitution: Public generic functions
Method, apply-substitution: Public generic functions
Method, apply-substitution: Public generic functions
Method, apply-substitution: Public generic functions
Method, aref-template-p: Public generic functions
Method, aref-template-p: Public generic functions
Method, array-template-p: Public generic functions
Method, array-template-p: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, collect-template-vars: Public generic functions
Method, element-template-p: Public generic functions
Method, element-template-p: Public generic functions
Method, elt-template-p: Public generic functions
Method, elt-template-p: Public generic functions
Method, expression-template-p: Public generic functions
Method, expression-template-p: Public generic functions
Method, initialize-instance: Public standalone methods
Method, initialize-instance: Public standalone methods
Method, lambda-list-parsing-error-item: Private generic functions
Method, lambda-template-p: Private generic functions
Method, lambda-template-p: Private generic functions
Method, list-template-p: Private generic functions
Method, list-template-p: Private generic functions
Method, make-load-form: Public standalone methods
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, make-template: Public generic functions
Method, nil-template-p: Public generic functions
Method, nil-template-p: Public generic functions
Method, nth-template-p: Public generic functions
Method, nth-template-p: Public generic functions
Method, nthcdr-template-p: Public generic functions
Method, nthcdr-template-p: Public generic functions
Method, number-template-p: Public generic functions
Method, number-template-p: Public generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, occurs-in-p: Private generic functions
Method, plist-template-p: Private generic functions
Method, plist-template-p: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, sequence-template-p: Private generic functions
Method, sequence-template-p: Private generic functions
Method, source-file-type: Public standalone methods
Method, standard-object-template-p: Public generic functions
Method, standard-object-template-p: Public generic functions
Method, string-template-p: Private generic functions
Method, string-template-p: Private generic functions
Method, structure-object-template-p: Public generic functions
Method, structure-object-template-p: Public generic functions
Method, subseq-template-p: Private generic functions
Method, subseq-template-p: Private generic functions
Method, symbol-template-p: Public generic functions
Method, symbol-template-p: Public generic functions
Method, template-p: Public generic functions
Method, template-p: Public generic functions
Method, template-spec: Public generic functions
Method, type-template-p: Public generic functions
Method, type-template-p: Public generic functions
Method, type-template-type-spec: Private generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, unify: Public generic functions
Method, untyped-unify: Private generic functions
Method, untyped-unify: Private generic functions
Method, untyped-unify: Private generic functions
Method, vector-template-p: Private generic functions
Method, vector-template-p: Private generic functions

N
new-var: Public ordinary functions
nil-template-p: Public generic functions
nil-template-p: Public generic functions
nil-template-p: Public generic functions
normalize-lambda-list: Private ordinary functions
nth-template-p: Public generic functions
nth-template-p: Public generic functions
nth-template-p: Public generic functions
nthcdr-template-p: Public generic functions
nthcdr-template-p: Public generic functions
nthcdr-template-p: Public generic functions
number-template-number: Private ordinary functions
number-template-numeric-class: Private ordinary functions
number-template-numeric-type: Private ordinary functions
number-template-p: Public generic functions
number-template-p: Public generic functions
number-template-p: Public generic functions

O
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
occurs-in-p: Private generic functions
optional-lambda-var-info-default-value: Private ordinary functions
optional-lambda-var-info-name: Private ordinary functions
optional-lambda-var-info-name-for-supplied-indicator: Private ordinary functions
optional-lambda-var-info-p: Private ordinary functions
optional-lambda-var-info-type: Private ordinary functions

P
parse-auxiliary-var-type-info: Private ordinary functions
parse-extended-ordinary-lambda-list: Private ordinary functions
parse-key-var-type-info: Private ordinary functions
parse-optional-var-type-info: Private ordinary functions
parse-rest-var-type-info: Private ordinary functions
parse-var-type-info: Private ordinary functions
plist-template-p: Private generic functions
plist-template-p: Private generic functions
plist-template-p: Private generic functions
pop-frame: Public ordinary functions
print-environment: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
push-frame: Public ordinary functions

R
rest-lambda-var-info-element-type: Private ordinary functions
rest-lambda-var-info-name: Private ordinary functions
rest-lambda-var-info-p: Private ordinary functions
rest-lambda-var-info-type: Private ordinary functions

S
sequence-template-lambda-list: Private ordinary functions
sequence-template-p: Private generic functions
sequence-template-p: Private generic functions
sequence-template-p: Private generic functions
sharp-t-reader: Private ordinary functions
source-file-type: Public standalone methods
standard-object-template-class: Private ordinary functions
standard-object-template-p: Public generic functions
standard-object-template-p: Public generic functions
standard-object-template-p: Public generic functions
standard-object-template-slots: Private ordinary functions
string-template-p: Private generic functions
string-template-p: Private generic functions
string-template-p: Private generic functions
structure-object-template-class: Private ordinary functions
structure-object-template-p: Public generic functions
structure-object-template-p: Public generic functions
structure-object-template-p: Public generic functions
structure-object-template-slots: Private ordinary functions
subseq-template-p: Private generic functions
subseq-template-p: Private generic functions
subseq-template-p: Private generic functions
substitution-p: Private ordinary functions
symbol-or-cons-p: Private ordinary functions
symbol-template-p: Public generic functions
symbol-template-p: Public generic functions
symbol-template-p: Public generic functions
symbol-template-symbol: Private ordinary functions

T
template-p: Public generic functions
template-p: Public generic functions
template-p: Public generic functions
template-spec: Public generic functions
template-spec: Public generic functions
type-is-t-p: Private ordinary functions
type-specifier-p: Private ordinary functions
type-template-p: Public generic functions
type-template-p: Public generic functions
type-template-p: Public generic functions
type-template-type-spec: Private generic functions
type-template-type-spec: Private generic functions

U
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify: Public generic functions
unify*: Public ordinary functions
unify-array-row: Private ordinary functions
unify-array-rows: Private ordinary functions
unify-equations: Public ordinary functions
unify-equations*: Public ordinary functions
untyped-unify: Private generic functions
untyped-unify: Private generic functions
untyped-unify: Private generic functions
untyped-unify: Private generic functions

V
v?: Public ordinary functions
valid-template-p: Private ordinary functions
var-unify: Private ordinary functions
variable-any-p: Public ordinary functions
variablep: Public ordinary functions
vector-template-element-type: Private ordinary functions
vector-template-p: Private generic functions
vector-template-p: Private generic functions
vector-template-p: Private generic functions
vector-template-size: Private ordinary functions


A.4 Data types

Jump to:   A   B   C   E   F   I   K   L   M   N   O   P   R   S   T   U   V  
Index Entry  Section

A
apply-substitution.lisp: The cl-unification/apply-substitution․lisp file
aref-template: Public classes
array-template: Public classes
asdf-system-definition-file: Private classes
aux-lambda-var-info: Private structures

B
binding: Private types
bindings: Private types

C
cl-unification: The cl-unification system
cl-unification-pkg.lisp: The cl-unification/cl-unification-pkg․lisp file
cl-unification-system: The cl-unification-system package
cl-unification.asd: The cl-unification/cl-unification․asd file
Class, aref-template: Public classes
Class, array-template: Public classes
Class, asdf-system-definition-file: Private classes
Class, element-template: Public classes
Class, elt-template: Public classes
Class, expression-template: Public classes
Class, lambda-template: Private classes
Class, list-template: Private classes
Class, nil-template: Public classes
Class, nth-template: Public classes
Class, nthcdr-template: Public classes
Class, number-template: Public classes
Class, plist-template: Private classes
Class, sequence-template: Private classes
Class, standard-object-template: Public classes
Class, string-template: Private classes
Class, structure-object-template: Public classes
Class, subseq-template: Private classes
Class, symbol-template: Public classes
Class, template: Public classes
Class, type-template: Public classes
Class, vector-template: Private classes
Condition, lambda-list-parsing-error: Private conditions
Condition, unification-failure: Public conditions
Condition, unification-non-exhaustive: Private conditions
Condition, unification-template-error: Private conditions
Condition, unification-variable-unbound: Public conditions

E
element-template: Public classes
elt-template: Public classes
environment: Public structures
expression-template: Public classes

F
File, apply-substitution.lisp: The cl-unification/apply-substitution․lisp file
File, cl-unification-pkg.lisp: The cl-unification/cl-unification-pkg․lisp file
File, cl-unification.asd: The cl-unification/cl-unification․asd file
File, lambda-list-parsing.lisp: The cl-unification/lambda-list-parsing․lisp file
File, match-block.lisp: The cl-unification/match-block․lisp file
File, substitutions.lisp: The cl-unification/substitutions․lisp file
File, templates-hierarchy.lisp: The cl-unification/templates-hierarchy․lisp file
File, unifier.lisp: The cl-unification/unifier․lisp file
File, variables.lisp: The cl-unification/variables․lisp file
frame: Private structures

I
it.unimib.disco.ma.cl.ext.dacf.unification: The it․unimib․disco․ma․cl․ext․dacf․unification package

K
key-lambda-var-info: Private structures

L
lambda-list-parsing-error: Private conditions
lambda-list-parsing.lisp: The cl-unification/lambda-list-parsing․lisp file
lambda-template: Private classes
lambda-var-info: Private structures
list-template: Private classes

M
match-block.lisp: The cl-unification/match-block․lisp file

N
nil-template: Public classes
nth-template: Public classes
nthcdr-template: Public classes
number-template: Public classes

O
optional-lambda-var-info: Private structures

P
Package, cl-unification-system: The cl-unification-system package
Package, it.unimib.disco.ma.cl.ext.dacf.unification: The it․unimib․disco․ma․cl․ext․dacf․unification package
plist-template: Private classes

R
rest-lambda-var-info: Private structures

S
sequence-template: Private classes
standard-object-template: Public classes
string-template: Private classes
Structure, aux-lambda-var-info: Private structures
Structure, environment: Public structures
Structure, frame: Private structures
Structure, key-lambda-var-info: Private structures
Structure, lambda-var-info: Private structures
Structure, optional-lambda-var-info: Private structures
Structure, rest-lambda-var-info: Private structures
structure-object-template: Public classes
subseq-template: Private classes
substitution: Public types
substitutions.lisp: The cl-unification/substitutions․lisp file
symbol-template: Public classes
System, cl-unification: The cl-unification system

T
template: Public classes
templates-hierarchy.lisp: The cl-unification/templates-hierarchy․lisp file
Type, binding: Private types
Type, bindings: Private types
Type, substitution: Public types
type-template: Public classes

U
unification-failure: Public conditions
unification-non-exhaustive: Private conditions
unification-template-error: Private conditions
unification-variable-unbound: Public conditions
unifier.lisp: The cl-unification/unifier․lisp file

V
variables.lisp: The cl-unification/variables․lisp file
vector-template: Private classes