Realises the popular combination of atom_codes/2
and number_codes/2
to convert between atom and number (integer, float or non-integer
rational) in one predicate, avoiding the intermediate list. Unlike the
ISO standard number_codes/2
predicates, atom_number/2
fails silently in mode (+,-) if Atom does not represent a
number.