[ Term I/O | Reference Manual | Alphabetic Index ]

write_canonical(?Term)

The term Term is written on the stream output in a form that ignores operator declarations and can be read in.
Term
Prolog term.

Description

Used to write the term Term in a form that can be read back independent of the current operator declarations. Atoms and strings are quoted, operator declarations are ignored, lists are printed as ./2 structures, the (stream-specific or global) print_depth flag is not taken into account, variable attributes are printed, and variables are printed with unique identifiers.

write_canonical(Term) is equivalent to printf("%DMOQv.w", Term) or write_term(Term, [attributes(full),operators(false),quoted(true), dotlists(true),variables(raw),depth(full),transform(false)]).

Note that as usual, the output is buffered, so it may need to be flushed either by closing the output stream, by writing again or by using flush/1.

Modes and Determinism

Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

Examples

   Equivalent to write_canonical(output, Term).
   (see write_canonical/2 for details).



See Also

write / 1, write / 2, writeq / 1, writeq / 2, write_canonical / 2