This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)
 Documentation / Mathematica / The Mathematica Book / Principles of Mathematica / Functional Operations  /

2.2.9 Advanced Topic: Working with Operators

You can think of an expression like f[x] as being formed by applying an operatorf 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.


Some functional operations.

  • This represents the composition of the functions f, g and h.
  • In[1]:= Composition[f, g, h]

    Out[1]=

  • You can manipulate compositions of functions symbolically.
  • In[2]:= InverseFunction[Composition[%, q]]

    Out[2]=

  • The composition is evaluated explicitly when you supply a specific argument.
  • In[3]:= %[x]

    Out[3]=

    You can get the sum of two expressions in Mathematica 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[4]:= (f + g)[x]

    Out[4]=

  • Using Through, you can convert the expression to a more explicit form.
  • In[5]:= Through[%, Plus]

    Out[5]=




  • This corresponds to the mathematical operator


    .
  • In[6]:= Identity + (D[#, x]&)

    Out[6]=

  • Mathematica does not automatically apply the separate pieces of the operator to an expression.
  • In[7]:= % [x^2]

    Out[7]=

  • You can use Through to apply the operator.
  • In[8]:= Through[%, Plus]

    Out[8]=


    Operations for working with operators.

  • This has a complicated expression as a head.
  • In[9]:= t = ((1 + a)(1 + b))[x]

    Out[9]=

  • Functions like Expand do not automatically go inside heads of expressions.
  • In[10]:= Expand[%]

    Out[10]=

  • With the Heads option set to True, MapAll goes inside heads.
  • In[11]:= MapAll[Expand, t, Heads->True]

    Out[11]=

  • The replacement operator /. does go inside heads of expressions.
  • In[12]:= t /. a->1

    Out[12]=

  • You can use Operate to apply a function specifically to the head of an expression.
  • In[13]:= Operate[p, t]

    Out[13]=