use '$enqueue_attr_var' when adding attributes only

This commit is contained in:
Mark Thom
2022-12-24 00:31:39 -07:00
parent 820011412b
commit aa7b8e52f3

View File

@@ -41,8 +41,7 @@
( L \= Attr -> ( L \= Attr ->
nonvar(Ls), nonvar(Ls),
'$get_from_list'(Ls, V, Attr) '$get_from_list'(Ls, V, Attr)
; L = Attr, ; L = Attr
'$enqueue_attr_var'(V)
). ).
'$put_attr'(V, Attr) :- '$put_attr'(V, Attr) :-
@@ -65,8 +64,7 @@
nonvar(Att), nonvar(Att),
( Att \= Attr -> ( Att \= Attr ->
'$del_attr_buried'(Ls0, Ls1, V, Attr) '$del_attr_buried'(Ls0, Ls1, V, Attr)
; '$enqueue_attr_var'(V), ; '$del_attr_head'(V),
'$del_attr_head'(V),
'$del_attr'(Ls1, V, Attr) '$del_attr'(Ls1, V, Attr)
). ).
@@ -84,8 +82,7 @@
; Ls1 = [Att | Ls2] -> ; Ls1 = [Att | Ls2] ->
( Att \= Attr -> ( Att \= Attr ->
'$del_attr_buried'(Ls1, Ls2, V, Attr) '$del_attr_buried'(Ls1, Ls2, V, Attr)
; '$enqueue_attr_var'(V), ; '$del_attr_non_head'(Ls0), %% set tail of Ls0 = tail of Ls1. can be undone by backtracking.
'$del_attr_non_head'(Ls0), %% set tail of Ls0 = tail of Ls1. can be undone by backtracking.
'$del_attr_step'(Ls1, V, Attr) '$del_attr_step'(Ls1, V, Attr)
) )
). ).