print(Term) :- current_prolog_flag(print_write_options, Options), !, write_term(Term, Options). print(Term) :- write_term(Term, [ portray(true), numbervars(true), quoted(true) ]).
The print/1
predicate is used primarily through the ~p
escape sequence
of format/2,
which is commonly used in the recipes used by
print_message/2
to emit messages.
The classical definition of this predicate is equivalent to the ISO
predicate write_term/2
using the options portray(true)
and
numbervars(true)
. The portray(true)
option
allows the user to implement application-specific printing of terms
printed during debugging to facilitate easy understanding of the output.
See also
portray/1
and library(portray_text)
. SWI-Prolog adds quoted(true)
to (1) facilitate the copying/pasting of terms that are not affected by
portray/1
and to (2) allow numbers, atoms and strings to be more easily
distinguished, e.g., 42
, '42'
and "42"
.