# Working with Operators

You can think of an expression like as being formed by applying an operator f to the expression x. You can think of an expression like as the result of *composing* the operators f and g, and applying the result to x.

Some functional operations.

This represents the composition of the functions

f,

g, and

.

Out[1]= | |

You can manipulate compositions of functions symbolically.

Out[2]= | |

The composition is evaluated explicitly when you supply a specific argument.

Out[3]= | |

You can get the sum of two expressions in *Mathematica* just by typing . Sometimes it is also worthwhile to consider performing operations like addition on *operators*.

You can think of this as containing a sum of two operators

and

.

Out[4]= | |

Using

Through, you can convert the expression to a more explicit form.

Out[5]= | |

This corresponds to the mathematical operator

.

Out[6]= | |

*Mathematica* does not automatically apply the separate pieces of the operator to an expression.

Out[7]= | |

You can use

Through to apply the operator.

Out[8]= | |

Identity[expr] | the identity function |

Through[p[f_{1},f_{2}][x],q] | give if p is the same as q |

Operate[p,f[x]] | give |

Operate[p,f[x],n] | apply p at level n in f |

MapAll[p,expr,Heads->True] | apply p to all parts of expr, including heads |

Operations for working with operators.

This has a complicated expression as a head.

Out[9]= | |

Functions like

Expand do not automatically go inside heads of expressions.

Out[10]= | |

Out[11]= | |

The replacement operator

does go inside heads of expressions.

Out[12]= | |

You can use

Operate to apply a function specifically to the head of an expression.

Out[13]= | |