# Working with Operators

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

 Composition[f,g,…] the composition of functions f, g, … RightComposition[f,g,…] the composition on the right of f, g, … InverseFunction[f] the inverse of a function f Identity the identity function

Some functional operations.

This represents the composition of the functions f, g, and Null:
 In:= Out= You can manipulate compositions of functions symbolically:
 In:= Out= The composition is evaluated explicitly when you supply a specific argument:
 In:= Out= Composition can be entered using the operator @*:
 In:= Out= RightComposition composes in the opposite order:
 In:= Out= Composition on the right can be entered using the operator /*
 In:= Out= You can get the sum of two expressions in the Wolfram System just by typing x+y. 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 f and g:
 In:= Out= Using Through, you can convert the expression to a more explicit form:
 In:= Out= This corresponds to the mathematical operator :
 In:= Out= The Wolfram System does not automatically apply the separate pieces of the operator to an expression:
 In:= Out= You can use Through to apply the operator:
 In:= Out= Identity[expr] the identity function Through[p[f1,f2][x],q] give p[f1[x], f2[x]] if p is the same as q Operate[p,f[x]] give p[f][x] 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:
 In:= Out= Functions like Expand do not automatically go inside heads of expressions:
 In:= Out= In:= Out= In:= Out= In:= Out= 