add subsumes_term/2
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "scryer-prolog"
|
||||
version = "0.8.71"
|
||||
version = "0.8.72"
|
||||
authors = ["Mark Thom <markjordanthom@gmail.com>"]
|
||||
repository = "https://github.com/mthom/scryer-prolog"
|
||||
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`
|
||||
* `sort/2`
|
||||
* `string/1`
|
||||
* `subsumes_term/2`
|
||||
* `term_expansion/2`
|
||||
* `term_variables/2`
|
||||
* `throw/1`
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
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,
|
||||
repeat/0, retract/1, set_prolog_flag/2, setof/3,
|
||||
term_variables/2, throw/1, true/0, write/1, write_canonical/1,
|
||||
write_term/2, writeq/1]).
|
||||
subsumes_term/2, term_variables/2, throw/1, true/0, write/1,
|
||||
write_canonical/1, write_term/2, writeq/1]).
|
||||
|
||||
% module resolution operator.
|
||||
:- op(600, xfy, :).
|
||||
@@ -815,3 +815,11 @@ number_chars(N, Chs) :-
|
||||
'$number_to_chars'(N, Chsx),
|
||||
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