For convenience, a further notational variant is allowed for lists of integers that correspond to character codes. Lists written in this notation are called strings. E.g.:
"SICStus"
which, by default, denotes exactly the same list as
[83,73,67,83,116,117,115]
The Prolog flag double_quotes can be used to change the way
strings are interpreted. The default value of the flag is codes,
which implies the above interpretation. If the flag is set to
chars, a string is transformed to a list of character atoms. E.g. with
this setting the above string represents the list:
['S','I','C','S',t,u,s]
Finally if double_quotes has the value atom, the
string is made equivalent to the atom formed from its characters:
the above sample string is then the same as the atom
'SICStus'.
Please note: Most code assumes that the Prolog flag
double_quotes has its default value (codes). Changing this
flag is not recommended.
Backslashes in the sequence denote escape sequences
(see ref-syn-syn-esc). As for quoted atoms, if a double quote
character is included in the sequence it must be escaped, e.g.
"can\"t".
The built-in predicates that print terms (see ref-iou-tou) do not use string syntax even if they could.
The characters that are allowed to occur within double quotes are restricted to a subset of Unicode; see ref-syn-syn-tok.