This section describes the basic term reading and writing predicates. The predicates format/[1,2] and writef/2 provide formatted output. Writing to Prolog datastructures such as atoms or code-lists is supported by with_output_to/2 and format/3.
There are two ways to manipulate the output format. The predicate print/[1,2] may be programmed using portray/1. The format of floating point numbers may be manipulated using the Prolog flag float_format.
Reading is sensitive to the Prolog flag character_escapes,
which controls the interpretation of the
character in quoted atoms and strings.
\
ignore
(ignore the attribute), dots
(write the attributes as {...}
), write
(simply
hand the attributes recursively to write_term/2)
and portray
(hand the attributes to attr_portray_hook/2).true
, write a string object (see section
4.23) as
`
...`
. The default depends on the Prolog flag
backquoted_string.true
, and quoted(true)
is active, special
characters in quoted atoms and strings are emitted as ISO
escape-sequences. Default is taken from the reference module (see
below).true
, the generic term-representation (<functor>(<args>
... )) will be used for all terms, Otherwise (default), operators,
list-notation and {}
/1 will be written using their special
syntax.?- write_term(a(s(s(s(s(0)))), [a,b,c,d,e,f]), [max_depth(3)]). a(s(s(...)), [a, b|...]) Yes
Used by the top-level and debugger to limit screen output. See also the Prolog flags toplevel_print_options and debugger_print_options.
user
). This defines
the default value for the character_escapes
option as well as the operator definitions to use. See also op/3.true
, terms of the format $VAR(N)
, where <N>
is a positive integer, will be written as a variable name. If N
is an atom it is written without quotes. This extension allows for
writing variables with user-provided names. The default is
false
. See also numbervars/3.true
, the hook portray/1
is called before printing a term that is not a variable. If portray/1
succeeds, the term is considered printed. See also print/1.
The default is false
. This option is an extension to the
ISO write_term options.format('~w = ', [VarName]), write_term(Value, [quoted(true), priority(699)])
true
, atoms and functors that needs quotes will be
quoted. The default is false
.
ignore_ops
,
quoted
and numbervars
after numbervars/4
using the
singletons
option.
Note that due to the use of numbervars/4,
non-ground terms must be written using a single write_canonical/1
call. This used to be the case anyhow, as garbage collection between
multiple calls to one of the write predicates can change the _G
<NNN>
identity of the variables.
end_of_file
.style_check(singleton)
is active (default). Used to read Prolog source files (see consult/1).
New code should use read_term/2
with the option singletons(warning)
.true
, read `
...`
to a string
object (see
section 4.23). The default
depends on the Prolog flag
backquoted_string.\
escape-sequences in quoted atoms. See
the Prolog flags character_escapes, current_prolog_flag/2.
(SWI-Prolog).variable_names
, but only reports the variables occurring
only once in the Term read. Variables starting with an
underscore (`_
') are not included in this list. (ISO). If Vars
is the constant warning
, singleton variables are reported
using
print_message/2.error
(default), throw and exception on a syntax error.
Other values are fail
, which causes a message to be printed
using
print_message/2,
after which the predicate fails, quiet
which causes the
predicate to fail silently and dec10
which causes syntax
errors to be printed, after which read_term/[2,3]
continues reading the next term. Using dec10
, read_term/[2,3]
never fails. (Quintus, SICStus)."
).
{...}
, as used in DCG rules. Arg
describes the argument.
|
<TailTerm>, Tail
is unified with the term-position of the tail, otherwise with the atom none
.
variable_names
, but allows for history
substitutions. read_history/6
is used by the top level to read the user's actions. Show is
the command the user should type to show the saved events. Help
is the command to get an overview of the capabilities. Special
is a list of commands that are not saved in the history. Prompt
is the first prompt given. Continuation prompts for more lines are
determined by prompt/2.
A
%w
in the prompt is substituted by the event number. See
section 2.7 for available
substitutions.
SWI-Prolog calls read_history/6 as follows:
read_history(h, '!h', [trace], '%w ?- ', Goal, Bindings)