needs_bracketing(Value, Op) :-
- catch((functor(Value, F, _),
- current_op(EqPrec, EqSpec, Op),
- current_op(FPrec, _, F)),
- _,
- false),
- ( EqPrec < FPrec ->
+ nonvar(Value),
+ \+ integer(Value),
+ functor(Value, F, Arity),
+ current_op(FPrec, _, F),
+ current_op(EqPrec, EqSpec, Op),
+ ( Arity =:= 0 ->
+ true
+ ; EqPrec < FPrec ->
true
; FPrec > 0, F == Value, graphic_token_char(F) ->
true
),
write(Var),
write(' = '),
- ( needs_bracketing(Value, (=)) ->
+ ( needs_bracketing(Value, =) ->
write('('),
write_term(Value, [quoted(true), variable_names(NewVarList), max_depth(MaxDepth)]),
write(')')
),
write(Var),
write(' = '),
- ( needs_bracketing(Value, (=)) ->
+ ( needs_bracketing(Value, =) ->
write('('),
write_term(Value, [quoted(true), variable_names(NewVarList), max_depth(MaxDepth)]),
write(')')
write_last_goal(G, VarList, MaxDepth).
graphic_token_char(C) :-
- memberchk(C, ['#', '$', '&', '*', '+', '-', '.', ('/'), ':',
- '<', '=', '>', '?', '@', '^', '~', ('\\')]).
+ memberchk(C, [#, $, &, *, +, -, ., /, :, <, =, >, ?, @, ^, ~, \\]).
list_last_item([C], C) :- !.
list_last_item([_|Cs], D) :-