gives the value of expr together with all expressions to which Sow has been applied during its evaluation. Expressions sown using Sow[e] or Sow[e, tagi] with different tags are given in different lists.

Reap[expr, patt]
reaps only expressions sown with tags that match patt.

Reap[expr, {patt1, patt2, ...}]
puts expressions associated with each of the in a separate list.

Reap[expr, patt, f]
returns .


  • Sow and Reap provide a convenient way to accumulate a list of intermediate results in a computation.
  • Reap accumulates expressions in the order in which Sow is applied to them.
  • Expressions sown with a particular tag are collected by the innermost Reap whose pattern matches the tag.
  • Reap[expr] is equivalent to Reap[expr, _].
  • Reap has attribute HoldFirst.
New in 5
New to Mathematica? Find your learning path »
Have a question? Ask support »