Manipulating Expressions like Lists

You can use most of the list operations discussed in "Lists" on any kind of Wolfram Language expression. By using these operations, you can manipulate the structure of expressions in many ways.

Here is an expression that corresponds to a sum of terms:

t=1+x+x^2+y^2

(RefLink[Take, paclet:ref/Take])[t,2] takes the first two elements from t, just as if t were a list:

Take[t,2]

(RefLink[Length, paclet:ref/Length]) gives the number of elements in t:

Length[t]

You can use (RefLink[FreeQ, paclet:ref/FreeQ])[expr,form] to test whether form appears nowhere in expr:

FreeQ[t,x]

This gives a list of the positions at which x appears in t:

Position[t,x]

You should remember that all functions which manipulate the structure of expressions act on the internal forms of these expressions. You can see these forms using (RefLink[FullForm, paclet:ref/FullForm])[expr]. They may not be what you would expect from the printed versions of the expressions.

Here is a function with four arguments:

f[a,b,c,d]

You can add an argument using (RefLink[Append, paclet:ref/Append]):

Append[%,e]

This reverses the arguments:

Reverse[%]

There are a few extra functions that can be used with expressions, as discussed in "Structural Operations".