[ Strings and Atoms | Reference Manual | Alphabetic Index ]

concat_atoms(+Src1, +Src2, -Dest)

Succeeds if Dest is the concatenation of Src1 and Src2. It is more efficient to use concat_strings/3 whenever possible.
Src1
Atom.
Src2
Atom.
Dest
Atom or variable.

Description

Dest is unified with the concatenation of Src1 and Src2. The use of this predicate is discouraged in favour of concat_strings/3, because the creation of new atoms involves entering them into a dictionary whose garbage collection is relatively expensive.

Modes and Determinism

Exceptions

(4) instantiation fault
Either (or both) of Src1 and Src2 is not instantiated (non-coroutine mode only).
(5) type error
Either (or both) of Src1 and Src2 is instantiated, but not to an atom.
(5) type error
Dest is neither an atom nor a variable.

Examples

Success:
      concat_atoms(abc,def,abcdef).

      [eclipse]: [user].
       filename(File,Full) :-
            name(File,L),
            member(0'.,L) -> Full = File ;
                          concat_atoms(File,'.pl',Full).
       user compiled 208 bytes in 0.00 seconds
      yes.
      [eclipse]: filename(a,P), filename('b.pl',F).
      P = 'a.pl'
      F = 'b.pl'
      yes.

Fail:
      concat_atoms(ab,bc,abc).

Error:
      concat_atoms(art,X,artpaul).      (Error 4).
      concat_atoms(art,"paul",X).       (Error 5).



See Also

concat_strings / 3, append_strings / 3, atom_string / 2