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 |
:representation | [Initarg] |
:clean-fn | [Initarg] |
:unify-fn | [Initarg] |
:merge-fn | [Initarg] |
Returns and (with setf) changes the merge-fn of the specified special-operator
Returns and (with setf) changes the unify-fn of the specified special-operator
Returns and (with setf) changes the clean-fn of the specified special-operator
Returns and (with setf) changes the taken of the specified mss-state
Returns and (with setf) changes the h-cost of the specified mss-state
Returns and (with setf) changes the g-cost of the specified mss-state
Returns and (with setf) changes the remaining of the specified mss-state
Adds a special operator to the *special-operators*.
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) ------------------------------------------
unify-includes-sequence | pattern source bindings-list &optional (unify-fn (function unify)) | [Function] |
Unify an exact subsequence of a source
Given a set of bindings, return those that respect the order of the pattern.
replaces each variable ?foo-23 with with -?foo-23-1 in a pattern
replaces -?bar symbols with their original variables in a set of bindings
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.
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.