Function Repository Resource:

# TakeBefore

Take elements before the specified element in an expression

Contributed by: Wolfram Staff
 ResourceFunction["TakeBefore"][list,pattern,n] takes n elements of list preceding the first occurrence of pattern. ResourceFunction["TakeBefore"][list,pattern,n,levelspec] takes elements on levels specified by levelspec. ResourceFunction["TakeBefore"][pattern,n,…] represents an operator form of ResourceFunction["TakeBefore"] that can be applied to an expression.

## Details and Options

ResourceFunction["TakeBefore"] accepts the following elements of the standard sequence specification:
 All all elements None no elements n elements 1 through n UpTo[n] up to n elements, as available
ResourceFunction["TakeBefore"] can be used on an object with any head, not necessarily List.
levelspec can be specified using the standard level specification, as used, for instance, in Cases.
The default value for levelspec in ResourceFunction["TakeBefore"] is {1}.
With the option setting , ResourceFunction["TakeBefore"] looks at heads of expressions and their parts.
ResourceFunction["TakeBefore"][pattern,n,][list] is equivalent to ResourceFunction["TakeBefore"][list,pattern,n,].

## Examples

### Basic Examples (5)

Take the two elements before the element d in a list:

 In[1]:=
 In[2]:=
 Out[2]=

Do the same using the operator form of TakeBefore:

 In[3]:=
 Out[3]=

Take all elements before b:

 In[4]:=
 Out[4]=

Take elements from an expression with an arbitrary head:

 In[5]:=
 Out[5]=

Take as many elements as possible, up to 20:

 In[6]:=
 Out[6]=

Take the first three elements before the element e at level 2:

 In[7]:=
 Out[7]=

### Options (2)

By default, TakeBefore does not include the head of an expression when creating a list of elements to match against the specified pattern:

 In[8]:=
 Out[8]=