Skip to content

Commit

Permalink
removed depemdemce on rb_trees from kbest.pl
Browse files Browse the repository at this point in the history
  • Loading branch information
friguzzi committed Nov 8, 2023
1 parent fb666af commit c6538fe
Showing 1 changed file with 4 additions and 34 deletions.
38 changes: 4 additions & 34 deletions prolog/kbest.pl
Original file line number Diff line number Diff line change
Expand Up @@ -683,36 +683,6 @@
setting_vit(M:P,V):-
M:local_kbest_setting(P,V).

extract_vars_list(L,[],V):-
rb_new(T),
extract_vars_tree(L,T,T1),
rb_keys(T1,V).

extract_vars(Term,V):-
rb_new(T),
extract_vars_term(Term,T,T1),
rb_keys(T1,V).

extract_vars_term(Variable, Var0, Var1) :-
var(Variable), !,
(rb_lookup(Variable, Var0,_) ->
Var1 = Var0
;
rb_insert(Var0,Variable,1,Var1)
).

extract_vars_term(Term, Var0, Var1) :-
Term=..[_F|Args],
extract_vars_tree(Args, Var0, Var1).



extract_vars_tree([], Var, Var).

extract_vars_tree([Term|Tail], Var0, Var1) :-
extract_vars_term(Term, Var0, Var),
extract_vars_tree(Tail, Var, Var1).

assert_all([],_M,[]).

assert_all([H|T],M,[HRef|TRef]):-
Expand Down Expand Up @@ -757,7 +727,7 @@
listN(0, LH, NH),
get_next_rule_number(M,R),
append(HeadList,BodyList,List),
extract_vars_list(List,[],VC),
term_variables(List,VC),
assert_rules(HeadList, M, 0, HeadList, BodyList, NH, R, VC),
assertz(M:rule_by_num(R, VC, NH, HeadList, BodyList)).

Expand All @@ -772,7 +742,7 @@
listN(0, LH, NH),
get_next_rule_number(M,R),
append(HeadList,BodyList,List),
extract_vars_list(List,[],VC),
term_variables(List,VC),
assert_rules(HeadList, M,0, HeadList, BodyList, NH, R, VC),
assertz(M:rule_by_num(R, VC, NH, HeadList, BodyList)).

Expand All @@ -789,7 +759,7 @@
length(HeadList, LH),
listN(0, LH, NH),
get_next_rule_number(M,R),
extract_vars_list(HeadList,[],VC),
term_variables(HeadList,VC),
assert_rules(HeadList, M, 0, HeadList, [], NH, R, VC),
assertz(M:rule_by_num(R, VC, NH, HeadList, [])).

Expand All @@ -801,7 +771,7 @@
length(HeadList, LH),
listN(0, LH, NH),
get_next_rule_number(M,R),
extract_vars_list(HeadList,[],VC),
term_variables(HeadList,VC),
assert_rules(HeadList, M, 0, HeadList, [], NH, R, VC),
assertz(M:rule_by_num(R, VC, NH, HeadList, [])).

Expand Down

0 comments on commit c6538fe

Please sign in to comment.