Note that (like all predicates that return a number as their last argument), this predicate can be used as a function inside arithmetic expressions.
Success:
atom_length(test, 4).
atom_length(test,L). (gives L = 4).
atom_length(as, X). (gives X = 2).
atom_length('4', 1).
Fail:
atom_length(test, 5).
Error:
atom_length(Atom, 2). (Error 4).
atom_length(Atom, 2.0). (Error 5).
atom_length(4, 1). (Error 5).
atom_length(as, 2.0). (Error 5).