add subsumes_term/2
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "scryer-prolog"
|
name = "scryer-prolog"
|
||||||
version = "0.8.71"
|
version = "0.8.72"
|
||||||
authors = ["Mark Thom <markjordanthom@gmail.com>"]
|
authors = ["Mark Thom <markjordanthom@gmail.com>"]
|
||||||
repository = "https://github.com/mthom/scryer-prolog"
|
repository = "https://github.com/mthom/scryer-prolog"
|
||||||
description = "A modern Prolog implementation written mostly in Rust."
|
description = "A modern Prolog implementation written mostly in Rust."
|
||||||
|
|||||||
@@ -223,6 +223,7 @@ The following predicates are built-in to Scryer.
|
|||||||
* `setup_call_cleanup/3`
|
* `setup_call_cleanup/3`
|
||||||
* `sort/2`
|
* `sort/2`
|
||||||
* `string/1`
|
* `string/1`
|
||||||
|
* `subsumes_term/2`
|
||||||
* `term_expansion/2`
|
* `term_expansion/2`
|
||||||
* `term_variables/2`
|
* `term_variables/2`
|
||||||
* `throw/1`
|
* `throw/1`
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
expand_goal/2, expand_term/2, false/0, findall/3, findall/4,
|
expand_goal/2, expand_term/2, false/0, findall/3, findall/4,
|
||||||
get_char/1, halt/0, number_chars/2, once/1, op/3, read_term/2,
|
get_char/1, halt/0, number_chars/2, once/1, op/3, read_term/2,
|
||||||
repeat/0, retract/1, set_prolog_flag/2, setof/3,
|
repeat/0, retract/1, set_prolog_flag/2, setof/3,
|
||||||
term_variables/2, throw/1, true/0, write/1, write_canonical/1,
|
subsumes_term/2, term_variables/2, throw/1, true/0, write/1,
|
||||||
write_term/2, writeq/1]).
|
write_canonical/1, write_term/2, writeq/1]).
|
||||||
|
|
||||||
% module resolution operator.
|
% module resolution operator.
|
||||||
:- op(600, xfy, :).
|
:- op(600, xfy, :).
|
||||||
@@ -815,3 +815,11 @@ number_chars(N, Chs) :-
|
|||||||
'$number_to_chars'(N, Chsx),
|
'$number_to_chars'(N, Chsx),
|
||||||
Chsx = Chs
|
Chsx = Chs
|
||||||
).
|
).
|
||||||
|
|
||||||
|
subsumes_term(General, Specific) :-
|
||||||
|
\+ \+ (
|
||||||
|
term_variables(Specific, SVs1),
|
||||||
|
General = Specific,
|
||||||
|
term_variables(SVs1, SVs2),
|
||||||
|
SVs1 == SVs2
|
||||||
|
).
|
||||||
|
|||||||
Reference in New Issue
Block a user