Scan[f, expr]
evaluates f applied to each element of expr in turn.

Scan[f, expr, levelspec]
applies f to parts of expr specified by levelspec.

Details and OptionsDetails and Options

  • Scan[f, expr] discards the results of applying f to the subexpressions in expr. Unlike Map, Scan does not build up a new expression to return.
  • You can use Return to exit from Scan. Return[ret] causes the final value of Scan to be ret. If no explicit return values are specified, the final result from Scan is Null.
  • You can also use Throw to exit from Scan. »
  • Scan is useful in carrying out an operation on parts of expressions where the operation has a "side effect", such as making an assignment.
  • Scan uses standard level specifications:
  • nlevels through n
    Infinitylevels through Infinity
    {n}level n only
    {n1,n2}levels through
  • The default value for levelspec in Scan is .
  • A positive level n consists of all parts of expr specified by n indices.
  • A negative level -n consists of all parts of expr with depth n.
  • Level consists of numbers, symbols, and other objects that do not have subparts.
  • Level corresponds to the whole expression.
  • With the option setting Heads->True, Scan includes heads of expressions and their parts. »
  • Scan traverses the parts of expr in a depth-first order, with leaves visited before roots.
  • If expr is a SparseArray object, Scan[f, expr] applies f only to the values or subarrays that explicitly appear in expr.
New in 1 | Last modified in 5
New to Mathematica? Find your learning path »
Have a question? Ask support »