此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

2.8.4 文本形式的翻译

从字符串或子符箱转化为表达式

将字符串转化为表达式

这是一个以 StandardForm 形式给出表达式的字符盒结构

ToExpression 翻译这个字符盒结构重新产生原来的表达式

在任何进程中,Mathematica 总是有效地利用 ToExpression 将输入 的文本形式转化为要计算的表达式.
使用 Mathematica 的笔记本前端时,仅当一个单元的内容送到内核进行 计算时才进行翻译. 这意味着在笔记本中,不需要将设置的文本形式与有意义的 Mathematica 表达式相对应,仅当把这些文本形式送往内核时才有必要与 表达式对应.

标准Mathematica输入的级别

FullForm 形式输入一个表达式

InputForm 形式输入的同一个表达式

StandardForm 形式输入的这一表达式

Mathematica 中建立了一系列标准规则以便 ToExpression 能将文本形式转化为表达式. 这些规则定义了Mathematica 的语法,它们指出 x + y 将被转化为 Plus[x, y] 应该被转化为 Power[x, y]. 当以 FullForm 输入时就直接转化:每个表达式仅由头部和括号内的一列元素 组成,对 InputForm 的规则稍微复杂一些:它们允许使用 +, =, 和 -> 等运算符. StandardForm 涉及到更复杂的规则它允许一维和二维结构形式的运算.
FullForm, InputFormStandardFormMathematica 中有级别,能用 FullForm 输入的肯定能用 InputForm 输入,InputForm 的输入在 StandardForm 中也有效. 当使用 Mathematica 的笔记本前端时, 一般使用 StandardForm. 当使用文本界面时一般将使用 InputForm.

InputForm的两种形式

Mathematica 笔记本中使用 StandardForm 时可以直接输入  等二维形式. 但 InputForm 仅允许一维的形式输入. 即使在 InputForm 中的实际文本是一维的, 但仍可以用它来表示二维形式. 如 \!\(x\^2\) 表示二维形式  , Mathematica会将它转化为 Power[x, 2].

常用的一维输入

这里是一个表示二维形式的输入

即使输入不同,但从后两行得到的是同样的表达式

Mathematica 中复制一个二维形式时,一般看到的是 \!\( ... \) 形式.当把这个二维形式粘贴到 Mathematica 的笔记本时, 它将自动转化为二维形式.当在一个笔记本中简单地输入 \!\( ... \) 时,可以 用 Make 2D 菜单项将其转化为二维形式.

从其它文本形式的输入

StandForm 和它的子集 FullFormInputForm 提供了以文本形式表示任何表达式 的确切方式. 当给出了这些文本形式时,它被无歧义地转化为所代表的表达式.
TraditionalForm 是作为输出的文本形式的一个例子. 可以用 TraditionalForm 显示 任何表达式. 但 TraditionalForm 没有 StandForm 的精确性,一般来讲无法从 TraditionalForm 返回无歧义的得到所代表的表达式. 然而, ToExpression[input, TraditionalForm] 会将以TraditionalForm 给出的文本转化为它所代表的表达式.

将字符串转化为 TraditionalForm 的输入

StandardForm 中,同样的字符串表示相乘

在计算结果中产生了 TraditionalForm 的输出时,表示这个输出的字符盒集合包含 特殊的 InterpretationBoxTagBox 项,它们指明怎样以 TraditionalForm 的输出重新构造表达式. 明确从 StandardForm 转换为 TraditionalForm 中,这种情况也中对的. 但对 TraditionalForm 进行大量编辑时,或从头 输入时,Mathematica 就必须在没有额外信息的情况下尝试将它进行转化.