This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)
 Documentation / Mathematica / Built-in Functions / Programming / Functional Programming  /
Scan

  • 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.
  • 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.
  • Level specifications are described in Section A.3.6.
  • The default value for levelspec in Scan is {1}.
  • See the Mathematica book: Section 2.2.4.
  • See also: Apply, Map, Level.

    Further Examples

    Scan evaluates the result of applying a function to each element but does not construct a new expression.

    In[1]:=

    a

    b

    c

    With the third argument set to Infinity, Scan visits the parts of an expression in a depth-first walk, with the leaves visited first.

    In[2]:=

    b

    x

    b x

    a

    x

    2

    2
    x

    2
    a x