How to| 创建变量和函数的定义

Wolfram 语言具有一组非常全面的函数记号,例如任意变换规则等. 变量也是按这种方式赋值. 一旦您设定了一个变量的值,该变量将变成这个值的符号.

这是一个简单的变换规则. 它指定:只要看到 ,就用3代替:

In[1]:=
Click for copyable input
Out[1]=

变量 的值为3.

无论您何时计算一个表达式,都用3来代替

In[2]:=
Click for copyable input
Out[2]=

该规则可以通过定义一个新规则去除:

In[3]:=
Click for copyable input
Out[3]=

新规则指定:无论何时看到 ,都将它代之以 . 到此为止由于没有与 相关的规则,因此它的值就是其自身.

赋值:

In[4]:=
Click for copyable input
Out[4]=

现在如果计算 的规则指定用 代替 ,且 的规则指定用4代替 ,因此结果是 即16:

In[5]:=
Click for copyable input
Out[5]=

如果要改变 的值,则 的值也随之改变:

In[6]:=
Click for copyable input
Out[6]=
In[7]:=
Click for copyable input
Out[7]=

现在为 赋上一个值,像这样:

In[8]:=
Click for copyable input
Out[8]=

由于 的值已经被赋为3,您已定义规则用9代替 ,而不是 代替 . 因此 独立于

In[9]:=
Click for copyable input
Out[9]=
In[10]:=
Click for copyable input
Out[10]=

这种情况的出现是因为当一个规则使用 (Set) 定义时,等号右端在规则定义之前计算.

您也可以使用 (SetDelayed) 定义规则,像这样:

In[11]:=
Click for copyable input

当一个规则用 定义时,等号右端在规则定义之前不被计算. 因此即使 已经有值,这个新规则指定的是:只要看到 ,就将它用 代替. 因此在这里, 取决于

In[12]:=
Click for copyable input
Out[12]=
In[13]:=
Click for copyable input
Out[13]=
In[14]:=
Click for copyable input
Out[14]=

Wolfram 语言中的函数由行为遵循模式的规则定义. 这是一个简单的模式:

In[15]:=
Click for copyable input

是一个模式, 在其中代表任意表达式(在右端通过名称 表示). 规则指定:对于任何表达式的 ,将其用该表达式的平方代替:

In[16]:=
Click for copyable input
Out[16]=
In[17]:=
Click for copyable input
Out[17]=

这是一个有两个自变量的函数:

In[18]:=
Click for copyable input
In[19]:=
Click for copyable input
Out[19]=

始终使用 定义函数,否则等号右端的变量有可能不代表左端的相关表述,因为它们将在规则定义之前被计算:

In[20]:=
Click for copyable input
Out[20]=

这种情况发生的原因是 为 9, 为 3. 规则指定任何与模式 匹配的都用90来代替:

In[21]:=
Click for copyable input
Out[21]=