This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.

# Scan

 Scanevaluates f applied to each element of expr in turn. Scanapplies f to parts of expr specified by levelspec.
• Scan 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.
• 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:
 n levels through n Infinity levels 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 applies f only to the values or subarrays that explicitly appear in expr.
 Scope   (5)
Scan level 1 (default):
Scan down to level 2:
Scan only level 2:
Scan levels 0 through 2:
Scan down to level 3:
Scan all levels, starting at level 1:
Scan also level 0:
Negative levels:
Positive and negative levels can be mixed: