This is documentation for Mathematica 5, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

Documentation / Mathematica / Built-in Functions / Lists and Matrices / List Construction /

Further Examples: Reap

The first element in the following output is the result of evaluating u;v;w. The second element in the output is the collection of what was sown.

In[1]:=

Out[1]=

When one Reap encloses another, sown expressions will go to the first matching Reap.

In[2]:=

Out[2]=

This gives the same result.

In[3]:=

Out[3]=

Items sown for each Sow tag are collected separately. Here tag comparison is based on SameQ.

In[4]:=

Out[4]=

The tag in Reap can be a pattern. Sow[expr, tag] collects expr for each tag that matches the pattern.

In[5]:=

Out[5]=

The tag expression in either Reap or Sow can be a list. For Sow[expr, tags], expr is sown for each tag in the list tags. Here the result consists of the lists of items collected successively for u, v, w and x. When v is repeated in the tag list of Sow, an item is sown once for each instance.

In[6]:=

Out[6]=

For Reap, the matches for each tag are collected separately and the result is returned as a list.

In[7]:=

Out[7]=

Sown items are reaped for any Sow tags which match any of the Reap tags. This expression has the same lists for tags v and w as in the previous example, but the matches with the pattern catch all of those items as well.

In[8]:=

Out[8]=

The third argument of Reap is a function that takes two arguments. It allows you to determine which Sow tags are associated with which collection of items. The default is (#2)& which returns only the reaped items. A convenient value for this function is Rule, since it allows you to see the associations naturally.

In[9]:=

Out[9]=

If the Reap tags are in a list, the function is applied to the Sow tags for each Reap tag separately.

In[10]:=

Out[10]=

This groups elements based on whether or not they are integers.

In[11]:=

Out[11]=

This defines the function SelectEquivalents, a kind of generalization. It groups together elements from a list x that have the same image under a function f. (See the Further Examples for Split for a similar function: Classify.)

In[12]:=

This groups elements in a list based on their value modulo 10.

In[13]:=

Out[13]=

This defines the function UnsortedUnion that drops duplicates from a list but, unlike Union, does not sort the remaining elements. (See the Further Examples for Union for another implementation.)

In[14]:=

In[15]:=

Out[15]=