具有非符号头部的表达式

大部分情况下,我们希望像 这样的表达式的头部 f 是一个简单符号,但具有非符号头部表达式也有一些重要应用.

是表达式的头部. 可以用这样的头部表示指定的函数.
In[1]:=
Click for copyable input
Out[1]=
可以用任何表达式作头部. 但必须放在括号内.
In[2]:=
Click for copyable input
Out[2]=

将一个复杂的表达式用作头部的情况在 "纯函数" 节已遇到. 将 Function[vars, body] 作为表达式的头部时就定义了对变量求值的函数.

头部为 Function[x, x^2] 的表达式的值是其变量的平方.
In[3]:=
Click for copyable input
Out[3]=

Mathematica 中有一些类似于纯函数的结构,它们用来表示数值函数等一些特殊的函数. 在所有情况下,基本机制是给出能够包含所需要的函数完整信息的头部.

Function[vars,body][args]纯函数
InterpolatingFunction[data][args]InterpolationNDSolve 产生的近似数值函数
CompiledFunction[data][args]Compile 产生的编译数值函数
LinearSolveFunction[data][vec]LinearSolve 产生的矩阵解函数

一些有非符号头部的表达式.

NDSolve 返回一系列规则,这些规则将 作为 InterpolatingFunction 的目标.
In[4]:=
Click for copyable input
Out[4]=
这是 InterpolatingFunction 的目标.
In[5]:=
Click for copyable input
Out[5]=
InterpolatingFunction 目标作为头部去得到函数 的数值近似.
In[6]:=
Click for copyable input
Out[6]=

复杂表达式作为头部的另一个重要应用是进行泛函运算.

考虑一个求导运算的例子,在 "导数的表示" 节将要讨论的表达式 求函数 的导数,在 Mathematica Derivative[1][f] 表示,"函数操作符" Derivative[1] 作用于 后给出另一个函数 .

这个表达式的头部表示将功能运算 Derivative[1] 作用于函数 .
In[7]:=
Click for copyable input
Out[7]//FullForm=
可以用 替代头部 表示求导运算.
In[8]:=
Click for copyable input
Out[8]=
New to Mathematica? Find your learning path »
Have a question? Ask support »