]> Repositorios git - scryer-prolog.git/commitdiff
use select to filter variable lists when printing equations of two variables
authorMark Thom <[email protected]>
Wed, 29 Apr 2020 14:05:10 +0000 (11:05 -0300)
committerMark Thom <[email protected]>
Wed, 29 Apr 2020 14:05:10 +0000 (11:05 -0300)
src/prolog/toplevel.pl

index af94cffb2d0a1cefd1c0c67735525f9137ea215b..7072017ddd46fbfd2ac806a976288db4ead21260 100644 (file)
@@ -78,7 +78,7 @@ needs_bracketing(Value, Op) :-
        memberchk(EqSpec, [fx,xfx,yfx])
     ).
 
-write_goal(G, VarList, MasterVarList, MaxDepth) :-
+write_goal(G, VarList, MaxDepth) :-
     (  G = (Var = Value) ->
        (  var(Value) ->
          select((Var = _), VarList, NewVarList)
@@ -94,10 +94,10 @@ write_goal(G, VarList, MasterVarList, MaxDepth) :-
        )
     ;  G == [] ->
        write('true')
-    ;  write_term(G, [quoted(true), variable_names(MasterVarList), max_depth(MaxDepth)])
+    ;  write_term(G, [quoted(true), variable_names(VarList), max_depth(MaxDepth)])
     ).
 
-write_last_goal(G, VarList, MasterVarList, MaxDepth) :-
+write_last_goal(G, VarList, MaxDepth) :-
     (  G = (Var = Value) ->
        (  var(Value) ->
          select((Var = _), VarList, NewVarList)
@@ -117,16 +117,16 @@ write_last_goal(G, VarList, MasterVarList, MaxDepth) :-
        )
     ;  G == [] ->
        write('true')
-    ;  write_term(G, [quoted(true), variable_names(MasterVarList), max_depth(MaxDepth)])
+    ;  write_term(G, [quoted(true), variable_names(VarList), max_depth(MaxDepth)])
     ).
 
-write_eq((G1, G2), VarList, MasterVarList, MaxDepth) :-
+write_eq((G1, G2), VarList, MaxDepth) :-
     !,
-    write_goal(G1, VarList, MasterVarList, MaxDepth),
+    write_goal(G1, VarList, MaxDepth),
     write(', '),
-    write_eq(G2, VarList, MasterVarList, MaxDepth).
-write_eq(G, VarList, MasterVarList, MaxDepth) :-
-    write_last_goal(G, VarList, MasterVarList, MaxDepth).
+    write_eq(G2, VarList, MaxDepth).
+write_eq(G, VarList, MaxDepth) :-
+    write_last_goal(G, VarList, MaxDepth).
 
 graphic_token_char(C) :-
     memberchk(C, ['#', '$', '&', '*', '+', '-', '.', ('/'), ':',
@@ -154,14 +154,14 @@ write_eqs_and_read_input(B, VarList) :-
     ),
     (  B0 == B ->
        (  Goals == [] ->
-             write('true.'), nl
+         write('true.'), nl
        ;  thread_goals(Goals, ThreadedGoals, (',')),
-             write_eq(ThreadedGoals, NewVarList, NewVarList, 20),
-             write('.'),
-             nl
+         write_eq(ThreadedGoals, NewVarList, 20),
+         write('.'),
+         nl
        )
     ;  thread_goals(Goals, ThreadedGoals, (',')),
-       write_eq(ThreadedGoals, NewVarList, NewVarList, 20),
+       write_eq(ThreadedGoals, NewVarList, 20),
        read_input(ThreadedGoals, NewVarList)
     ).
 
@@ -170,12 +170,12 @@ read_input(ThreadedGoals, NewVarList) :-
     (  C = w ->
        nl,
        write('   '),
-       write_eq(ThreadedGoals, NewVarList, NewVarList, 0),
+       write_eq(ThreadedGoals, NewVarList, 0),
        read_input(ThreadedGoals, NewVarList)
     ;  C = p ->
        nl,
        write('   '),
-       write_eq(ThreadedGoals, NewVarList, NewVarList, 20),
+       write_eq(ThreadedGoals, NewVarList, 20),
        read_input(ThreadedGoals, NewVarList)
     ;  member(C, [';', ' ', n]) ->
        nl, write(';  '), false