[ Term Manipulation | Reference Manual | Alphabetic Index ]

# term_string(?Term, ?String, +Options)

Configurable conversion between a Prolog term and a string.

Term
  Prolog term.
String
  String or a variable.
Options
  List of read or write options

## Description

If String is instantiated, its contents are parsed (using read_term/3 and the given Options).

If String is not instantiated, Term is written into a string (using write_term/3 with options corresponding to writeq/2, followed and possibly overridden by the given Options).

Inapplicable options are silently ignored.

### Modes and Determinism

- term_string(?, -, +) is det
- term_string(-, +, +) is det

### Modules

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

### Exceptions

(4) instantiation fault
  Options is insufficiently instantiated.
(5) type error
  String is instantiated, but not to a string.
(5) type error
  Options is not a list or does not only contain compound terms.
(6) out of range
  Options is a list containing compound terms that are not valid options.
(7) string contains unexpected characters
  String cannot be converted to a Prolog term.

## Examples

        ?- term_string([1,a], S, [dotlists(true)])
        S = ".(1,.(a,[]))"

        ?- term_string(['A',3+4], S, [quoted(false),operators(false)])
        S = "['A',+(3,4)]"

        ?- term_string(T, "[1,Y,_]", [variable_names(V)]).
        T = [1, Y, _208]
        V = ['Y' = Y]

## See Also

term_string / 2, number_string / 2, read_term / 3, write_term / 3, sprintf / 3