Special Forms of Assignment
Particularly when you write procedural programs in
Mathematica, you will often need to modify the value of a particular variable repeatedly. You can always do this by constructing the new value and explicitly performing an assignment such as
x=value.
Mathematica, however, provides special notations for incrementing the values of variables, and for some other common cases.
| i++ | increment the value of i by 1 |
| i-- | decrement i |
| ++i | pre-increment i |
| --i | pre-decrement i |
| i+=di | add di to the value of i |
| i-=di | subtract di from i |
| x*=c | multiply x by c |
| x/=c | divide x by c |
Modifying values of variables.
This assigns the value 7x to the variable t.
| Out[1]= |  |
|
This increments the value of t by 18x.
| Out[2]= |  |
|
The value of t has been modified.
| Out[3]= |  |
|
This sets t to 8, multiplies its value by 7, then gives the final value of t.
| Out[4]= |  |
|
The value of i++ is the value of i before the increment is done. |
The value of ++i is the value of i after the increment. |
| x=y=value | assign the same value to both x and y |
| {x,y}={value1,value2} | assign different values to x and y |
| {x,y}={y,x} | interchange the values of x and y |
Assigning values to several variables at a time.
This assigns the value 5 to x and 8 to y.
| Out[7]= |  |
|
This interchanges the values of x and y.
| Out[8]= |  |
|
| Out[9]= |  |
|
| Out[10]= |  |
|
You can use assignments to lists to permute values of variables in any way.
| Out[11]= |  |
|
When you write programs in
Mathematica, you will sometimes find it convenient to take a list, and successively add elements to it. You can do this using the functions
PrependTo and
AppendTo.
| PrependTo[v,elem] | prepend elem to the value of v |
| AppendTo[v,elem] | append elem |
| v={v,elem} | make a nested list containing elem |
Assignments for modifying lists.
This assigns the value of v to be the list {5, 7, 9}.
| Out[12]= |  |
|
This appends the element 11 to the value of v.
| Out[13]= |  |
|
Now the value of v has been modified.
| Out[14]= |  |
|
Although
AppendTo[v, elem] is always equivalent to
v=Append[v, elem], it is often a convenient notation. However, you should realize that because of the way
Mathematica stores lists, it is usually less efficient to add a sequence of elements to a particular list than to create a nested structure that consists, for example, of lists of length 2 at each level. When you have built up such a structure, you can always reduce it to a single list using
Flatten.
This sets up a nested list structure for w.
| Out[15]= |  |
|
You can use Flatten to unravel the structure.
| Out[16]= |  |
|