do not count calls to $reify_switch as inferences
This commit is contained in:
@@ -5,18 +5,18 @@
|
|||||||
:- use_module(library(control), [(\=)/2]).
|
:- use_module(library(control), [(\=)/2]).
|
||||||
:- use_module(library(dif)).
|
:- use_module(library(dif)).
|
||||||
|
|
||||||
/* in essence, '$reify_switch'(T, Then_0, Else_0) is this:
|
/* in essence, '$reify_switch'(T, Then_0, Else_0) is semantically this:
|
||||||
( T == true -> call(Then_0)
|
( T == true -> call(Then_0)
|
||||||
; T == false -> call(Else_0)
|
; T == false -> call(Else_0)
|
||||||
; nonvar(T) -> throw(error(type_error(boolean, T), _))
|
; nonvar(T) -> throw(error(type_error(boolean, T), _))
|
||||||
; throw(error(instantiation_error, _))
|
; throw(error(instantiation_error, _))
|
||||||
).
|
).
|
||||||
but without creating choice points.
|
but it does not create choice points.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if_(If_1, Then_0, Else_0) :-
|
if_(If_1, Then_0, Else_0) :-
|
||||||
call(If_1, T),
|
call(If_1, T),
|
||||||
'$reify_switch'(T, Then_0, Else_0).
|
'$call_with_default_policy'('$reify_switch'(T, Then_0, Else_0)).
|
||||||
|
|
||||||
=(X, Y, T) :-
|
=(X, Y, T) :-
|
||||||
( X == Y -> T = true
|
( X == Y -> T = true
|
||||||
|
|||||||
Reference in New Issue
Block a user