From 07412b9d344ba3947cc687e1eaaf3d79f23813cb Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Thu, 20 Jun 2019 20:59:27 -0400 Subject: [PATCH] add fail predicate --- README.md | 1 + src/prolog/lib/builtins.pl | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4982068f..9462e399 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ The following predicates are built-in to Scryer. * `dif/2` * `expand_goal/2` * `expand_term/2` +* `fail/0` * `false/0` * `findall/{3,4}` * `float/1` diff --git a/src/prolog/lib/builtins.pl b/src/prolog/lib/builtins.pl index d145deac..e093a1dd 100644 --- a/src/prolog/lib/builtins.pl +++ b/src/prolog/lib/builtins.pl @@ -14,12 +14,12 @@ assertz/1, atom_chars/2, atom_codes/2, atom_concat/3, atom_length/2, bagof/3, catch/3, char_code/2, clause/2, current_op/3, current_predicate/1, current_prolog_flag/2, - expand_goal/2, expand_term/2, false/0, findall/3, findall/4, - get_char/1, halt/0, number_chars/2, number_codes/2, once/1, - op/3, read_term/2, repeat/0, retract/1, set_prolog_flag/2, - setof/3, sub_atom/5, subsumes_term/2, term_variables/2, - throw/1, true/0, unify_with_occurs_check/2, write/1, - write_canonical/1, write_term/2, writeq/1]). + expand_goal/2, expand_term/2, fail/0, false/0, findall/3, + findall/4, get_char/1, halt/0, number_chars/2, number_codes/2, + once/1, op/3, read_term/2, repeat/0, retract/1, + set_prolog_flag/2, setof/3, sub_atom/5, subsumes_term/2, + term_variables/2, throw/1, true/0, unify_with_occurs_check/2, + write/1, write_canonical/1, write_term/2, writeq/1]). % module resolution operator. :- op(600, xfy, :). @@ -123,6 +123,8 @@ set_prolog_flag(Flag, _) :- % control operators. +fail :- '$fail'. + \+ G :- G, !, false. \+ _. -- 2.54.0