How to | Map a Function over a List
Mathematica includes many powerful operations for working with lists. It is often desirable to map a function onto each individual element in a list. While listable functions do this by default, you can use
Map to do this with nonlistable functions.
First set up a list of the integers from 1 to 5:
| Out[1]= |  |
You can map a function over every element of the list using
Map; this example uses an undefined function
f:
| Out[2]= |  |
You can use
/@ as a shorthand for
Map (this is the same command as in the previous example):
| Out[3]= |  |
Most mathematical functions have the
Listable property, meaning they automatically map over lists:
| Out[4]= |  |
| Out[5]= |  |
If the function is not
Listable, you can use
Map, instead. Set up a list of five 2×2 matrices:
| Out[6]= |  |
Use
Map to map
MatrixForm over the list to see each of them in mathematical notation:
| Out[7]= |  |
Now use
Map to calculate the eigenvalues of each of the matrices in the list:
| Out[8]= |  |
Map does not just operate on lists. It can be used for any expression:
| Out[9]= |  |
Apply is another functional programming operation. It replaces the head of an expression.
You can see how this works using two undefined functions,
f and
g:
| Out[10]= |  |
Apply has
@@ for a shorthand notation (this is the same command as the previous example):
| Out[11]= |  |
Common expressions are shown in
StandardForm in
Mathematica, but their underlying
FullForm shows how
Apply can be used:
| Out[12]= |  |
For example, this changes a sum into a product:
| Out[13]= |  |
Apply is useful when you want to turn the elements in a list into function arguments.
Create a list of five ordered pairs
{a, b}:
| Out[14]= |  |
Mod finds the remainder when dividing the first number of an ordered pair by the second:
| Out[15]= |  |
To apply
Mod to all of the pairs, you need to work at level 1 of the list (specified by the
{1}):
| Out[16]= |  |
You can use
@@@ as a shorthand to apply at level 1:
| Out[17]= |  |
This is another way to do the same thing using a pure function with
Function:
| Out[18]= |  |
This uses the short form of
Function:
| Out[19]= |  |