定义输出格式

正如 Wolfram 语言允许用户对表达式如何计算进行定义一样,用户也可以定义表达式按何种格式输出. 其基本思想是在无论何时对给定表达式进行格式输出,Wolfram 语言首先调用函数 Format[expr] 找出是否已经定义了该表达式输出格式的特殊规则. 通过给 Format[expr] 赋值,可以令 Wolfram 语言按一定的方式输出某种类型的表达式.

令 Wolfram 语言按特殊方式设置对象 的格式.
In[1]:=
Click for copyable input
现在 对象如二项式系数一样输出.
In[2]:=
Click for copyable input
Out[2]=
而内部 对象仍然是相同的.
In[3]:=
Click for copyable input
Out[3]//FullForm=
Format[expr1]:=expr2定义 的格式相同
Format[expr1,form]:=expr2仅定义一个特殊的输出形式

自行定义格式化规则.

通过 Format 的定义可以令 Wolfram 语言将一个特定表达式的格式与另一个表达式相同t. 也可以令 Wolfram 语言运行一个程序去确定怎样格式化一个表达式.

这里设定 Wolfram 语言运行一个程序确定如何格式化 对象.
In[4]:=
Click for copyable input
每一个 被格式化时就产生字符串.
In[5]:=
Click for copyable input
Out[5]=
内部的表达式仍然包含 对象.
In[6]:=
Click for copyable input
Out[6]=
Prefix[f[x],h]前缀形式
Postfix[f[x],h]后缀形式
Infix[f[x,y,],h]中缀形式
Prefix[f[x]]标准前缀形式
Postfix[f[x]]标准后缀形式
Infix[f[x,y,]]标准中缀形式
PrecedenceForm[expr,n]加括号具有 n 级优先权的对象

运算符的输出形式.

用前缀算符 表示 .
In[7]:=
Click for copyable input
Out[7]=
具有中缀算符 的输出.
In[8]:=
Click for copyable input
Out[8]=
默认时,中缀算符 的优先级别比 高,因此不需要加括号.
In[9]:=
Click for copyable input
Out[9]=

当输出涉及到运算符时,就需要考虑到是否要对一些变量加括号,正如"表达式输入的特殊方式" 一节中所讨论的,这取决于运算符的优先级. 在对涉及到运算符的输出形式进行设置时,可使用 PrecedenceForm 来定义运算符的优先级. Wolfram 语言用1到1000的整数来表示运算符的优先级别,优先级别越高,越不需要加括号.

这里 的优先级别为 . 这个级别较低,就需要加括号.
In[10]:=
Click for copyable input
Out[10]=

Format[expr] 的赋值就是按 Wolfram 语言输出的标准类型定义 expr 的输出形式. 通过定义 Format[expr,form] 可以指定特殊的输出形式.

为符号 指定输出形式 TeXForm.
In[11]:=
Click for copyable input
在需要 TeX 形式时,就使用对 指定的输出形式.