make current_predicate/1 more general, re: #66

This commit is contained in:
Mark Thom
2019-03-27 21:13:36 -06:00
parent 32c8a5e55f
commit e7bc01369a

View File

@@ -730,12 +730,10 @@ match_builtins(call, N) :-
match_builtins(Name, Arity).
current_predicate(Pred) :-
( var(Pred) -> throw(error(type_error(predicate_indicator, Pred), current_predicate/1))
; Pred = _ / _ ->
( '$get_current_predicate_list'(Ls),
'$iterate_predicate_list'(Ls, Pred)
)
; throw(error(type_error(predicate_indicator, Pred), current_predicate/1))
( nonvar(Pred), Pred \= _ / _
-> throw(error(type_error(predicate_indicator,Pred), current_predicate/1))
; '$get_current_predicate_list'(Ls),
'$iterate_predicate_list'(Ls, Pred)
).
bb_put(Key, Value) :- atom(Key), !, '$store_global_var'(Key, Value).