[ Obsolete | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]

name(?Atomnumber, ?List)

Succeeds if List is the corresponding list of ASCII codes for the atom or number Atomnumber.
Atomnumber
Atom, number or variable.
List
List of integers (each in the range 1 to 127) and/or variables, or else a variable.

This built-in predicate is obsolete!

Description

If Atomnumber is an atom or a number, unifies List with the list of its corresponding ASCII codes. Real numbers can be any length in decimal format, though fractions are evaluated to 6 decimal places. The codes are of each character of the atom, or of each digit (or decimal point) of the number.

If List is instantiated, unifies Atomnumber with the atom or number corresponding to this list of ASCII integers.

Modes and Determinism

Exceptions

(4) instantiation fault
Neither Atomnumber nor List are ground.
(5) type error
Atomnumber is instantiated, but not to an atom or a number.
(5) type error
List is instantiated, but not to a list.
(6) out of range
List is a list containing an integer outside the range 1 to 127.

Examples

   Success:
   name(atom,[97,116,111,109]).
   name(atom,[X,116|T]).        (gives X=97,T=[111,109]).
   name(/,[47]).
   name(10,[49,48]).
   name(20.0,[50,48,46,48]).
   name(2,[50]).
   name(+2,L).                  (gives L=[50]).
   name(-2,L).                  (gives L=[45,50]).
   name('1',[0'1]).
   X is 1/3, name(X,Y).         % X unifies with 0.333333
   (gives Y=[48,46,51,51,51,51,51,51]).
   Fail:
   name(atom,[98,116,111,109]).
   name('1',B), name(C,B), C='1'. % 1 does not unify with '1'.
   name(1.0,[0'1,0'.,0'0,0'0]).   % 1.0 is not 1.00
   Error:
   name(AN,[1,M]).     (Error 4).
   name(AN,L).         (Error 4).
   name(f(1,2),L).     (Error 5).
   name(AN,[128]).     (Error 6).
   name(AN,[0]).       (Error 6).



See Also

number_string / 2, atom_string / 2, char_int / 2, integer_atom / 2, string_list / 2, string_list / 3, term_string / 2