matcher-extensions

Class summary
special-operator
Structure summary
mss-state
Method summary
add-special-operator special-operator
clean-fn special-operator
merge-fn special-operator
representation special-operator
unify-fn special-operator
Function summary
bag-to-position-list bag
check-order pattern source bindings-list
clean-excludes excludes bindings
clean-or or bindings
clean-tag tags bindings
clean-tag-all tag bindings
compare-no-tags expr1 expr2 compare-fn
compatible-unique-elements? pe se &optional (bs +no-bindings+)
copy-mss-state mss-state
equal-no-tags expr1 expr2
fcg-merge-no-vars pattern source bindings
get-so operator-symbol
get-windows lst l
initial-mss-state subset superset bindings test-fn merge-fn cutoff destructive &key (remove-special-operators t)
make-compare-no-tags-fn fn
make-mss-state &key mr-so-far remaining g-cost h-cost taken
make-subset subset superset bindings &key (test-fn nil) (merge-fn (function fcg-merge)) cutoff (destructive t) (remove-special-operators t)
merge-excludes pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-includes pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-includes-sequence pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-includes-uniquely includes-list y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-or or y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-overrides pattern source bindings &key cutoff (merge-fn (function fcg-merge)) &allow-other-keys
merge-permutation pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-strict pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-tag tag-variable tag-expression y bsl merge-fn cutoff
merge-tag-all tag y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
merge-tags tags y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)
mss-state-g-cost mss-state
mss-state-h-cost mss-state
mss-state-mr-so-far mss-state
mss-state-p object
mss-state-remaining mss-state
mss-state-taken mss-state
operator-p operator-symbol
overrides-p x
replace-symbols-with-their-original-variable bindings
replace-variables-with-symbols pattern
subset-p subset superset bindings-list &key (unify-fn (function unify))
successor-states mss-state merge-fn cutoff superset
tag-p x
unify-excludes pattern source bindings-list
unify-includes pattern source bindings-list
unify-includes-ordered-list pattern source bindings-list
unify-includes-sequence pattern source bindings-list &optional (unify-fn (function unify))
unify-includes-uniquely includes-list y bsl
unify-or or y bindings-list
unify-overrides pattern source bindings-list
unify-permutation p y bsl
unify-tag-all tag y bindings-list &optional (unify-fn (function unify))
unify-tags tags y bindings-list &optional (unify-fn (function unify))
unify-treat-variables-in-source-as-symbols pattern source bsl
unify-unique-elements pe se bsl
valid-includes-uniquely-list? list bs
special-operator    [Class]
:representation    [Initarg]
:clean-fn    [Initarg]
:unify-fn    [Initarg]
:merge-fn    [Initarg]
merge-fn   special-operator  [Generic function]

Returns and (with setf) changes the merge-fn of the specified special-operator

unify-fn   special-operator  [Generic function]

Returns and (with setf) changes the unify-fn of the specified special-operator

clean-fn   special-operator  [Generic function]

Returns and (with setf) changes the clean-fn of the specified special-operator

representation   special-operator  [Generic function]

Returns and (with setf) changes the representation of the specified special-operator

mss-state    [Structure]
mss-state-taken   mss-state  [Function]

Returns and (with setf) changes the taken of the specified mss-state

mss-state-h-cost   mss-state  [Function]

Returns and (with setf) changes the h-cost of the specified mss-state

mss-state-g-cost   mss-state  [Function]

Returns and (with setf) changes the g-cost of the specified mss-state

mss-state-remaining   mss-state  [Function]

Returns and (with setf) changes the remaining of the specified mss-state

mss-state-mr-so-far   mss-state  [Function]

Returns and (with setf) changes the mr-so-far of the specified mss-state

make-mss-state   &key mr-so-far remaining g-cost h-cost taken  [Function]

Returns a newly created mss-state.

copy-mss-state   mss-state  [Function]

Returns a copy of the specified mss-state.

mss-state-p   object  [Function]

Returns T if the specified object is of type mss-state.

*special-operators*    [Variable]
add-special-operator   special-operator  [Generic function]

Adds a special operator to the *special-operators*.

get-so   operator-symbol  [Function]
operator-p   operator-symbol  [Function]
merge-strict   pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
unify-or   or y bindings-list  [Function]
merge-or   or y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
clean-or   or bindings  [Function]
subset-p   subset superset bindings-list &key (unify-fn (function unify))  [Function]

Determines whether SUBSET (a list) is a subset of SUPERSET (also a list) in the form of a BINDINGS-LIST. Every BINDINGS returned assures that

(subsetp (substitute-bindings BINDINGS SUBSET) (substitute-bindings BINDINGS SUPSERSET) :test UNIFY-FN) is true.

Example:

(subset-p '((x ?a) u (v ?b ?c)) '((x a) u ?u (v b ?r)) (list +no-bindings+) :unify-fn #'unify)

returns the following BINDINGS:

(1) ((?C . ?R) (?B . B) (?U . U) (?A . A)) (2) ((?C . ?R) (?B . B) (?U X ?A)) (3) ((?C . ?R) (?B . B) (?A . A))) (4) ((?U V ?B ?C) (?A . A))

resulting in the following table after substitution: BINDINGS | subset | extra in superset ----------------------------------------------------- (1) | ((x a) u (v b ?r)) | u (2) | ((x ?a) u (v b ?r)) | (x a) (3) | ((x a) u (v b ?r)) | ?u (4) | ((x a) u (v ?b ?c)) | (v b ?r) ------------------------------------------

get-windows   lst l  [Function]

Given a list and a length l, return all subwindows of that list.

unify-includes-sequence   pattern source bindings-list &optional (unify-fn (function unify))  [Function]

Unify an exact subsequence of a source

merge-includes-sequence   pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
check-order   pattern source bindings-list  [Function]

Given a set of bindings, return those that respect the order of the pattern.

unify-includes-ordered-list   pattern source bindings-list  [Function]
unify-includes   pattern source bindings-list  [Function]
merge-includes   pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
unify-permutation   p y bsl  [Function]
merge-permutation   pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
replace-variables-with-symbols   pattern  [Function]

replaces each variable ?foo-23 with with -?foo-23-1 in a pattern

replace-symbols-with-their-original-variable   bindings  [Function]

replaces -?bar symbols with their original variables in a set of bindings

unify-treat-variables-in-source-as-symbols   pattern source bsl  [Function]
unify-includes-uniquely   includes-list y bsl  [Function]
valid-includes-uniquely-list?   list bs  [Function]
compatible-unique-elements?   pe se &optional (bs +no-bindings+)  [Function]
unify-unique-elements   pe se bsl  [Function]
merge-includes-uniquely   includes-list y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
unify-excludes   pattern source bindings-list  [Function]
merge-excludes   pattern source bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
clean-excludes   excludes bindings  [Function]
bag-to-position-list   bag  [Function]

Given a bag (a set that might have duplicates) it returns a list containing each element and its position(s). The duplicates are thus explicitly represented because they'll have more positions.

initial-mss-state   subset superset bindings test-fn merge-fn cutoff destructive &key (remove-special-operators t)  [Function]
successor-states   mss-state merge-fn cutoff superset  [Function]
make-subset   subset superset bindings &key (test-fn nil) (merge-fn (function fcg-merge)) cutoff (destructive t) (remove-special-operators t)  [Function]

Add elements to superset so that subset is a subset of it.

compare-no-tags   expr1 expr2 compare-fn  [Function]
equal-no-tags   expr1 expr2  [Function]
make-compare-no-tags-fn   fn  [Function]
tag-p   x  [Function]
unify-tags   tags y bindings-list &optional (unify-fn (function unify))  [Function]
merge-tag   tag-variable tag-expression y bsl merge-fn cutoff  [Function]
merge-tags   tags y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
clean-tag   tags bindings  [Function]
fcg-merge-no-vars   pattern source bindings  [Function]
unify-tag-all   tag y bindings-list &optional (unify-fn (function unify))  [Function]
clean-tag-all   tag bindings  [Function]
merge-tag-all   tag y bindings &key cutoff (merge-fn (function fcg-merge)) (remove-special-operators t)  [Function]
overrides-p   x  [Function]
unify-overrides   pattern source bindings-list  [Function]
merge-overrides   pattern source bindings &key cutoff (merge-fn (function fcg-merge)) &allow-other-keys  [Function]