name(N, "300"), 400 is N + 100succeeds). If CodeList is not a representation of a number, Atomic will be unified with the atom with the name given by the character code list. When Atomic is an atom or number, the unquoted print representation of it as a character code list will be unified with CodeList.
Note that it is not possible to produce the atom '300' using name/2,
name(300, CodeList), name('300', CodeList)
succeeds. For these reasons, new code should consider using the ISO
the ISO predicates provide no neat way to check that a string can be
interpreted as a number. The most sensible way is to use catch/3
to catch the exception from number_codes/2;
however, this is both slow and cumbersome. We consider making, e.g.,
"abc") fail silently in future versions. See also atom_number/2.