Constant summary | |
---|---|
+fail+ | nil |
Structure summary | |
---|---|
merge-result |
Method summary | |
---|---|
instantiate-expression | e &optional instantiations |
instantiate-variables | object &optional renamings |
make-load-form | (r merge-result) &optional env |
rename-variables | object &optional renamings |
Function summary | |
---|---|
assert-binding | var val bindings |
binding-val | binding |
binding-var | binding |
bindings->alist | bs |
bucket-difference | l1 l2 &key (test (function eql)) |
copy-merge-result | merge-result |
create-vars | list &optional (bindings +no-bindings+) (rename-variables t) |
dotted-list? | list |
equalities? | bindings |
expression-introduce-variables | facts &optional bindings (rename-variables t) |
extend-bindings | var val bindings |
fail? | x |
fcg-length | l |
fcg-merge | pattern source bindings &key (cutoff nil) (destructive t) (merge-fn (function fcg-merge)) |
get-binding | var bindings |
get-equalities | bs |
introduce-variables | fact &optional bindings (rename-variables t) |
lookup | var bindings &optional prev-bindings |
make-binding | var val |
make-dotted-list | list &optional (last-cell (make-var (quote rest))) |
make-merge-result | expr bsl &optional (added nil) |
make-mr | &key expr (bsl (list +no-bindings+)) added moved |
merge-bindings | bs1 bs2 |
merge-bindings-lists | bsl1 bsl2 |
merge-result-added | merge-result |
merge-result-bsl | merge-result |
merge-result-expr | merge-result |
merge-result-moved | merge-result |
merge-result-p | object |
merge-special | pattern source bindings cutoff merge-fn &key (remove-special-operators t) |
no-bindings? | x |
occurs-check | var x bindings |
remove-special-operators | e bindings |
reverse-bindings | bs |
reverse-renamings | in renamings |
safe-extend-bindings | var val bindings |
(setf binding-val) | val |
simple-unify-special | x y bindings |
substitute-bindings | bindings x |
unify | x y &optional (bindings-list (list +no-bindings+)) |
unify-atom | x y bindings |
unify-simple | x y &optional (bindings +no-bindings+) |
unify-special | x y bindings-list |
unify-variable | var x bindings |
variables-in | x |
Macro summary | |
---|---|
test-unify | pattern source bsl |
Returns and (with setf) changes the moved of the specified merge-result
Returns and (with setf) changes the added of the specified merge-result
Returns and (with setf) changes the bsl of the specified merge-result
Rename all variables that occur in the object to new unique variables and return the result. The renamings used (an alist) is returned as second value.
Rename all variables that occur in the object to new unique constants and return the result. The renamings used (an alist) is returned as second value.
Returns a list of all variables contained in x. X can be anything, but only if it is a variable or a tree of which one of the leafs is a varibale something is returned, i.e. for example the contents of a struct is not checked.
Returns a binding (a cons cell of the form (var . value)) for the variable var as specified in bindings or NIL if var is unbound in bindings.
Returns the value to which var is bound in bindings or NIL if it is unbound.
Adds the binding of var to val to bindings but checks whether there is not already a different binding.
Assures that var is bound to val in binding, even if it was bount to something else (in which case the binding is changed.
Does nothing for now because bindings are actually implemented as alist, but is here in case we would like to change this.
Merges the bindings bs1 and bs2. If there are conflicting bindings than +fail+ is returned.
Returns a bindings-list (a list of bindings) which is the union of all possible successful pairwise merges of bindings in bsl1 and bsl2
Returns a list of lists of variables that are equal according to bindings
Substitute all variables in x with their binding as specified in bindings.
Extend bindings with variables for every element in list.
Introduces variables for each but the first element of fact.
Return a list of all equalities, i.e. bindings of variables to other variables.
Check whether the variable var or its value according to bindings occurs in x.
Creates a dotted-list: (make-dotted-list '(a b)) -> (a b . ?rest-1)