Three predicates convert between constants and lists of
character codes: atom_codes/2, number_codes/2, and name/2.
Two predicates convert between constants and lists of
character atoms: atom_chars/2, number_chars/2.
atom_codes(Atom, Codes) is
a relation between an atom Atom and a list Codes
consisting of the character codes comprising the printed
representation of Atom. Initially, either Atom must be
instantiated to an atom, or Codes must be instantiated to
a proper code-list.
number_codes(Number, Codes) is a relation between a
number Number and a list Codes consisting of the
character codes comprising the printed representation of
Number. Initially, either Number must be instantiated to
a number, or Codes must be instantiated to a proper code-list.
Similarly,
atom_chars(Atom, Chars) and number_chars(Atom, Chars) are
relations between a constant and a list
consisting of the character atoms comprising the printed
representation of the constant.
name/2 converts between a constant and a code-list. Given a
code-list, name/2 will convert it to a number if
it can, otherwise to an atom. This means that there are atoms that
can be constructed by atom_codes/2 but not by name/2.
name/2 is retained for backwards compatibility with other
Prologs. New programs should use atom_codes/2 or
number_codes/2 as appropriate.
char_code/2 converts between a character atom and a character code.