AtomQ

AtomQ[expr]

yields True if expr is an expression which cannot be divided into subexpressions, and yields False otherwise.

Details

  • You can use AtomQ in a recursive procedure to tell when you have reached the bottom of the tree corresponding to an expression.
  • AtomQ gives True for symbols, numbers, strings, and other raw objects, such as sparse arrays.
  • AtomQ gives True for any object whose subparts cannot be accessed using functions like Map.

Examples

open allclose all

Basic Examples  (1)

Test if an expression cannot be subdivided:

Since it is not an atom, its parts can be extracted:

This is a number that is an atom:

Scope  (6)

Strings are not subdividable:

Symbols are not subdividable:

Numbers are not subdividable:

Rational numbers appear to have a compound structure:

As numbers, they are not subdividable:

The parts can be accessed through Numerator and Denominator:

Complex numbers appear to have a compound structure:

As numbers, they are not subdividable:

The parts can be accessed through Re and Im:

SparseArray objects are atomic raw objects:

Commands that work with SparseArray objects typically do so on the represented array:

The FullForm of a SparseArray object is designed to be sufficient to reconstruct the raw object:

Applications  (2)

Find the number of unsubdividable leaves in an expression:

A deeply nested expression:

This is equivalent to LeafCount:

With the option Heads->False, only atoms with no branches are counted:

This corresponds to the dangling leaves you see with TreeForm:

Find the minimum and maximum "depth" of an expression:

Depth gives the maximum depth plus 1:

Properties & Relations  (1)

Map[f,expr,{-1}] generally maps f on atoms in expr:

This is equivalent to the following recursive function:

Wolfram Research (1988), AtomQ, Wolfram Language function, https://reference.wolfram.com/language/ref/AtomQ.html (updated 2003).

Text

Wolfram Research (1988), AtomQ, Wolfram Language function, https://reference.wolfram.com/language/ref/AtomQ.html (updated 2003).

CMS

Wolfram Language. 1988. "AtomQ." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2003. https://reference.wolfram.com/language/ref/AtomQ.html.

APA

Wolfram Language. (1988). AtomQ. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AtomQ.html

BibTeX

@misc{reference.wolfram_2023_atomq, author="Wolfram Research", title="{AtomQ}", year="2003", howpublished="\url{https://reference.wolfram.com/language/ref/AtomQ.html}", note=[Accessed: 19-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_atomq, organization={Wolfram Research}, title={AtomQ}, year={2003}, url={https://reference.wolfram.com/language/ref/AtomQ.html}, note=[Accessed: 19-March-2024 ]}