.. index:: single: term_io_protocol .. _term_io_protocol/0: .. rst-class:: right **protocol** ``term_io_protocol`` ==================== Predicates for term input/output from/to atom, chars, and codes. The predicates are declared as synchronized when the library is compiled using a backend supporting threads. | **Availability:** | ``logtalk_load(term_io(loader))`` | **Author:** Paulo Moura | **Version:** 1:3:0 | **Date:** 2021-10-04 | **Compilation flags:** | ``static`` | **Dependencies:** | (none) | **Remarks:** - Portability notes: To keep calls to these library predicates portable, use only standard read/write options and specify output formats using atoms. | **Inherited public predicates:** | (none) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: read_term_from_atom/3 .. _term_io_protocol/0::read_term_from_atom/3: ``read_term_from_atom/3`` ^^^^^^^^^^^^^^^^^^^^^^^^^ Reads a term from an atom using the given read options. A period at the end of the atom is optional. Valid options are those supported by the standard ``read_term/3`` predicate. | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``read_term_from_atom(Atom,Term,Options)`` | **Mode and number of proofs:** | ``read_term_from_atom(+atom,-term,+list(read_option))`` - ``one_or_error`` ------------ .. index:: read_from_atom/2 .. _term_io_protocol/0::read_from_atom/2: ``read_from_atom/2`` ^^^^^^^^^^^^^^^^^^^^ Reads a term from an atom using default read options. Shorthand for ``read_term_from_atom(Atom,Term,[])``. A period at the end of the atom is optional. | **Compilation flags:** | ``static`` | **Template:** | ``read_from_atom(Atom,Term)`` | **Mode and number of proofs:** | ``read_from_atom(+atom,-term)`` - ``one_or_error`` ------------ .. index:: read_term_from_chars/3 .. _term_io_protocol/0::read_term_from_chars/3: ``read_term_from_chars/3`` ^^^^^^^^^^^^^^^^^^^^^^^^^^ Reads a term from a list of characters using the given read options. A period at the end of the list is optional. Valid options are those supported by the standard ``read_term/3`` predicate. | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``read_term_from_chars(Chars,Term,Options)`` | **Mode and number of proofs:** | ``read_term_from_chars(+list(character),-term,+list(read_option))`` - ``one_or_error`` ------------ .. index:: read_term_from_chars/4 .. _term_io_protocol/0::read_term_from_chars/4: ``read_term_from_chars/4`` ^^^^^^^^^^^^^^^^^^^^^^^^^^ Reads a term from a list of characters using the given read options, also returning the remaining characters. A period at the end of the term is required. Valid options are those supported by the standard ``read_term/3`` predicate. | **Compilation flags:** | ``static`` | **Template:** | ``read_term_from_chars(Chars,Term,Tail,Options)`` | **Mode and number of proofs:** | ``read_term_from_chars(+list(character),-term,-list(character),+list(read_option))`` - ``one_or_error`` ------------ .. index:: read_from_chars/2 .. _term_io_protocol/0::read_from_chars/2: ``read_from_chars/2`` ^^^^^^^^^^^^^^^^^^^^^ Reads a term from a list of characters using default read options. Shorthand for ``read_term_from_chars(Chars,Term,[])``. A period at the end of the list is optional. | **Compilation flags:** | ``static`` | **Template:** | ``read_from_chars(Chars,Term)`` | **Mode and number of proofs:** | ``read_from_chars(+list(character),-term)`` - ``one_or_error`` ------------ .. index:: read_term_from_codes/3 .. _term_io_protocol/0::read_term_from_codes/3: ``read_term_from_codes/3`` ^^^^^^^^^^^^^^^^^^^^^^^^^^ Reads a term from a list of character codes using the given read options. A period at the end of the list is optional. Valid options are those supported by the standard ``read_term/3`` predicate. | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``read_term_from_codes(Codes,Term,Options)`` | **Mode and number of proofs:** | ``read_term_from_codes(+list(character_code),-term,+list(read_option))`` - ``one_or_error`` ------------ .. index:: read_term_from_codes/4 .. _term_io_protocol/0::read_term_from_codes/4: ``read_term_from_codes/4`` ^^^^^^^^^^^^^^^^^^^^^^^^^^ Reads a term from a list of character codes using the given read options, also returning the remaining character codes. A period at the end of the term is required. Valid options are those supported by the standard ``read_term/3`` predicate. | **Compilation flags:** | ``static`` | **Template:** | ``read_term_from_codes(Codes,Term,Tail,Options)`` | **Mode and number of proofs:** | ``read_term_from_codes(+list(character_code),-term,-list(character_code),+list(read_option))`` - ``one_or_error`` ------------ .. index:: read_from_codes/2 .. _term_io_protocol/0::read_from_codes/2: ``read_from_codes/2`` ^^^^^^^^^^^^^^^^^^^^^ Reads a term from a list of character codes using default read options. Shorthand for ``read_term_from_codes(Codes,Term,[])``. A period at the end of the list is optional. | **Compilation flags:** | ``static`` | **Template:** | ``read_from_codes(Codes,Term)`` | **Mode and number of proofs:** | ``read_from_codes(+list(character_code),-term)`` - ``one_or_error`` ------------ .. index:: write_term_to_atom/3 .. _term_io_protocol/0::write_term_to_atom/3: ``write_term_to_atom/3`` ^^^^^^^^^^^^^^^^^^^^^^^^ Writes a term to an atom using the given write options. Valid options are those supported by the standard ``write_term/3`` predicate. | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``write_term_to_atom(Term,Atom,Options)`` | **Mode and number of proofs:** | ``write_term_to_atom(@term,-atom,+list(write_option))`` - ``one`` ------------ .. index:: write_to_atom/2 .. _term_io_protocol/0::write_to_atom/2: ``write_to_atom/2`` ^^^^^^^^^^^^^^^^^^^ Writes a term to an atom using default write options. Shorthand for ``write_term_to_atom(Term,Atom,[])``. | **Compilation flags:** | ``static`` | **Template:** | ``write_to_atom(Term,Atom)`` | **Mode and number of proofs:** | ``write_to_atom(@term,-atom)`` - ``one`` ------------ .. index:: write_term_to_chars/3 .. _term_io_protocol/0::write_term_to_chars/3: ``write_term_to_chars/3`` ^^^^^^^^^^^^^^^^^^^^^^^^^ Writes a term to a list of characters using the given write options. Shorthand for ``write_term_to_chars(Term,Chars,[],Options)``. Valid options are those supported by the standard ``write_term/3`` predicate. | **Compilation flags:** | ``static`` | **Template:** | ``write_term_to_chars(Term,Chars,Options)`` | **Mode and number of proofs:** | ``write_term_to_chars(@term,-list(character),+list(write_option))`` - ``one`` ------------ .. index:: write_term_to_chars/4 .. _term_io_protocol/0::write_term_to_chars/4: ``write_term_to_chars/4`` ^^^^^^^^^^^^^^^^^^^^^^^^^ Writes a term to a list of characters with the given tail using the given write options. Valid options are those supported by the standard ``write_term/3`` predicate. | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``write_term_to_chars(Term,Chars,Tail,Options)`` | **Mode and number of proofs:** | ``write_term_to_chars(@term,-list(character),@term,+list(write_option))`` - ``one`` ------------ .. index:: write_to_chars/2 .. _term_io_protocol/0::write_to_chars/2: ``write_to_chars/2`` ^^^^^^^^^^^^^^^^^^^^ Writes a term to a list of characters using default write options. Shorthand for ``write_term_to_chars(Term,Chars,[],[])``. | **Compilation flags:** | ``static`` | **Template:** | ``write_to_chars(Term,Chars)`` | **Mode and number of proofs:** | ``write_to_chars(@term,-list(character))`` - ``one`` ------------ .. index:: write_term_to_codes/3 .. _term_io_protocol/0::write_term_to_codes/3: ``write_term_to_codes/3`` ^^^^^^^^^^^^^^^^^^^^^^^^^ Writes a term to a list of character codes using the given write options. Shorthand for ``write_term_to_codes(Term,Codes,[],Options)``. Valid options are those supported by the standard ``write_term/3`` predicate. | **Compilation flags:** | ``static`` | **Template:** | ``write_term_to_codes(Term,Codes,Options)`` | **Mode and number of proofs:** | ``write_term_to_codes(@term,-list(character_code),+list(write_option))`` - ``one`` ------------ .. index:: write_term_to_codes/4 .. _term_io_protocol/0::write_term_to_codes/4: ``write_term_to_codes/4`` ^^^^^^^^^^^^^^^^^^^^^^^^^ Writes a term to a list of character codes with the given tail using the given write options. Valid options are those supported by the standard ``write_term/3`` predicate. | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``write_term_to_codes(Term,Codes,Tail,Options)`` | **Mode and number of proofs:** | ``write_term_to_codes(@term,-list(character_code),@term,+list(write_option))`` - ``one`` ------------ .. index:: write_to_codes/2 .. _term_io_protocol/0::write_to_codes/2: ``write_to_codes/2`` ^^^^^^^^^^^^^^^^^^^^ Writes a term to a list of character codes using default write options. Shorthand for ``write_term_to_chars(Term,Codes,[],[])``. | **Compilation flags:** | ``static`` | **Template:** | ``write_to_codes(Term,Codes)`` | **Mode and number of proofs:** | ``write_to_codes(@term,-list(character_code))`` - ``one`` ------------ .. index:: format_to_atom/3 .. _term_io_protocol/0::format_to_atom/3: ``format_to_atom/3`` ^^^^^^^^^^^^^^^^^^^^ Writes a list of arguments to an atom using the given format (specified as in the de facto standard ``format/2`` predicate). | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``format_to_atom(Format,Arguments,Atom)`` | **Mode and number of proofs:** | ``format_to_atom(@atom,+list(term),-atom)`` - ``one`` ------------ .. index:: format_to_chars/3 .. _term_io_protocol/0::format_to_chars/3: ``format_to_chars/3`` ^^^^^^^^^^^^^^^^^^^^^ Writes a list of arguments to a list of characters using the given format (specified as in the de facto standard ``format/2`` predicate). Shorthand for ``format_to_chars(Format,Arguments,Chars,[])``. | **Compilation flags:** | ``static`` | **Template:** | ``format_to_chars(Format,Arguments,Chars)`` | **Mode and number of proofs:** | ``format_to_chars(@term,+list(term),-list(character))`` - ``one`` ------------ .. index:: format_to_chars/4 .. _term_io_protocol/0::format_to_chars/4: ``format_to_chars/4`` ^^^^^^^^^^^^^^^^^^^^^ Writes a term to a list of characters with the given tail using the given format (specified as in the de facto standard ``format/2`` predicate). | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``format_to_chars(Format,Arguments,Chars,Tail)`` | **Mode and number of proofs:** | ``format_to_chars(@term,+list(term),-list(character),@term)`` - ``one`` ------------ .. index:: format_to_codes/3 .. _term_io_protocol/0::format_to_codes/3: ``format_to_codes/3`` ^^^^^^^^^^^^^^^^^^^^^ Writes a list of arguments to a list of character codes using the given format (specified as in the de facto standard ``format/2`` predicate). Shorthand for ``format_to_codes(Format,Arguments,Codes,[])``. | **Compilation flags:** | ``static`` | **Template:** | ``format_to_codes(Format,Arguments,Codes)`` | **Mode and number of proofs:** | ``format_to_codes(@term,+list(term),-list(character_code))`` - ``one`` ------------ .. index:: format_to_codes/4 .. _term_io_protocol/0::format_to_codes/4: ``format_to_codes/4`` ^^^^^^^^^^^^^^^^^^^^^ Writes a list of arguments to a list of character codes with the given tail using the given format (specified as in the de facto standard ``format/2`` predicate). | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``format_to_codes(Format,Arguments,Codes,Tail)`` | **Mode and number of proofs:** | ``format_to_codes(@term,+list(term),-list(character_code),@term)`` - ``one`` ------------ .. index:: with_output_to/2 .. _term_io_protocol/0::with_output_to/2: ``with_output_to/2`` ^^^^^^^^^^^^^^^^^^^^ Calls a goal deterministically with output to the given format: ``atom(Atom)``, ``chars(Chars)``, ``chars(Chars,Tail)``, ``codes(Codes)``, or ``codes(Codes,Tail)``. | **Compilation flags:** | ``static, synchronized`` | **Template:** | ``with_output_to(Output,Goal)`` | **Meta-predicate template:** | ``with_output_to(*,0)`` | **Mode and number of proofs:** | ``with_output_to(+compound,+callable)`` - ``zero_or_one`` ------------ Protected predicates -------------------- (none) Private predicates ------------------ (none) Operators --------- (none)