清除符号和函数的定义

对于由 Set (=) 赋值的符号和用 SetDelayed (:=) 定义的函数,清除定义的工作原理是一样的.

定义函数或符号

定义一个函数 f

In[1]:=
Click for copyable input

求函数或符号的定义

f 的定义:

In[2]:=
Click for copyable input
  • 还可以用 Definition 获取符号或函数的定义.

清除函数或符号的定义

清除 f 的定义:

In[3]:=
Click for copyable input

函数 f 不再有定义:

In[4]:=
Click for copyable input

技术要点

重新定义一个函数之前使用 Clear 将确保没有不必要的残留定义及由此引起的潜在问题.
可以用 Unset(如 x=.)清除用 Set(如 x=2)赋值的符号.
Clear 能清除定义,但不能清除属性、消息或符号的缺省值. 用 ClearAll 可以清除所有与符号相关联的信息.
ClearClearAll 不能清除符号. 用 Remove 能完全移除符号:
In[5]:=
Click for copyable input
Out[5]=
In[6]:=
Click for copyable input
Clear 之后符号 x 依然存在:
In[7]:=
Click for copyable input
将符号完全清除:
In[8]:=
Click for copyable input
In[9]:=
Click for copyable input