WOLFRAM 语言教程

自从 Mathematica 第一版以来所进行的不兼容的变化

介绍

Mathematica 每一期新版本都包含许多新增功能. 但是,从一开始就进行的精心设计使所有版本之间几乎完全兼容. 例如,几乎所有为 Mathematica 第1版编写的程序都应该能够在第7版中无需改变直接运行,尽管它的运行速度往往会大大加快.

但是,一个不可避免的问题是,如果一个程序使用的名称以大写字母开头,那么很可能会出现这样一种情况:继程序写成之后添加到 Mathematica 中的内置函数的名称,与在先前写出来的程序中使用的名称冲突.

另外,为了保持 Mathematica 整体上的一致性,在早期版本中存在的一些函数逐渐被弃用先是在文档中不再出现,然后是在使用时产生警告信息. 此外,在一些极个别情况下,必须对一些和以前版本不兼容的个别函数做一些改变.

第1版与第2版之间

  • 添加了 260 个新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • Condition () 现在可以用于单个模式以及完全规则中,并且不在默认设置时进行计算.
  • Power 不在自动进行诸如 Sqrt[x^2]x 等的变换.
  • 如果 Limit 遇到一个未知函数,它在默认设置时保持不被计算.
  • FontForm 取一种略有不同的字体设定形式.

第2版与第3版之间

  • 添加了 259 个新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • 现在 N[expr,n] 总是尽可能给出 n 位精度,而不是简单的从 n 位精度开始计算.
  • 所有只包含数值函数和数值常量的表达式,只要它们包含任何近似数字,就转换为近似数字形式.
  • 涉及不用求值的精确数字的任何表达式现在都进行求值计算. 例如:Floor[(7/3)^20].
  • 现在 PlusTimes 在应用用户自定义的规则前应用内置规则,因此进行类似 的定义不再可能.
  • 的运算符优先级已被变至低于 . 因而,以前在 InputForm 中如 的表达式现在必须写成 . V2Get[file] 将使用旧的运算符优先级读取一个文件.
  • 现在是一个用于生成上标的运算符. 对于控制字符的输入,必须使用原八进制代码而不是 .
  • Mathematica 笔记本中,一些内置 Mathematica 函数现在默认使用特殊字符输出. 例如:在 StandardForm 中, 的输出是 .
  • 现在仅有内置数值,但这些数值可以处理所有可能的 Mathematica 字符.
  • 不再被支持.
  • 任意精度近似实数现默认在 InputForm 中以 digits`prec 形式给出. 这个行为由 $NumberMarks 控制.
  • 大的近似实数现默认在 InputForm 中以 形式给出.
  • 现已弃用,因为所有计算机系统的支持管道和链接.
  • SubscriptSuperscript 现在代表的是完整的带有下标和上标的量,而不仅仅是下标和上标.

在笔记本的前端,进行的变化包括:

  • 笔记本的文件格式已经完全改变,以支持新的笔记本功能.
  • 笔记本文件现在默认给出 .nb 而不是 .ma 的扩展名,.mb 文件现在是多余的.
  • 前端会自动要求将用户命令打开的任何旧的笔记本进行转换.
  • 内核命令 NotebookConvert 可用于笔记本文件格式由第2版至第3版的转换.
  • 样式表的组织以及一些默认样式的设置已被更改.
  • 一些菜单命令的热键已经被重新组织.

第3版与第4版之间

  • 添加了61个新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • N[0] 现在产生机器精度零而不是精确零.
  • Element[x,y] 或者 现有内置计算规则.
  • 符号 IEStandardForm 输出分别为 (\[ImaginaryI]) 和 (\[ExponentialE]).
  • CompiledFunction 中添加了一个新的第二参数,以便更容易操作和编译函数的组成.

第4版与第5版之间

  • 添加了44个全新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • PrecisionAccuracy 现在以数值形式返回精确的不确定性的度量,而不仅仅是整数位的估计.
  • FindRoot[f,{x,{x0,x1}}] 现在用于指定 x 的一个开始向量值,而不是一对数值. FindMinimum 也同样如此.
  • 当与不同的计算机系统连接时,Wolfram Symbolic Transfer Protocol (WSTP) LinkProtocol 选项的默认设置现在是 而不是 .

第5版与第6版之间

图形功能已显著改变. 为了兼容的目的,使用 恢复 Mathematica 5 的图形功能. 使用 恢复 Mathematica 6 的图形功能.

  • 添加了超过800个的全新内置对象,其中一些名称可能与已经使用的名称冲突.
  • GraphicsGraphics3D 对象的输出形式现在是生成的图形而不是形如 的一个输出.
  • $DisplayFunction 现在的设置为 Identity,因此当评估一个图形时,默认时无附加效果产生. 为了产生类似于第5版的输出中的附加效果,可以使用 Print 函数来输出图形.
  • 图形的默认字体由 Courier 变为 Times.
  • ListPlot 现在将一列点集合到一个单一的 Point 基元.
  • Lighting 现在支持一种用于指定包括聚光灯,点光源,定向照明及照明环境等不同种类光源的新的语法.
  • 不再支持图形基元 .

第5版与第6版之间

  • 添加了超过400个的全新内置对象,其中一些名称可能与已经使用的名称冲突.
  • 对于光栅图像格式,现在 Import[file] 返回 Image[] 而不是 Graphics[Raster[]],以便利用新的图像处理功能. 使用Import[file, "Graphics"] 来将文件 fileGraphics 表达式形式导出.
  • 对于更精确的表达式结构,Import[file,"XML"]Export[file,"XML"] 现在总是只导入和导出符号式 XML 表达式. Import["file.xml"] 仍将像在 Mathematica 6 中一样自动确定 XML 格式.
  • 为了允许更多不同的交互式控制,选项 已改名为 TooltipDelay,用法不变.