2.图书馆与环境变化

可能是97年将代码移植到SML的优势所在涉及从顶层更新对标识符的引用环境和对内置Basis库的其他引用。这个基础库是单独记录的,但我们将介绍一些更改的重点在本节中。

SML/NJ图书馆也进行了更新。新文档SML/NJ图书馆正在准备中,但有一个SML/NJ图书馆移植指南提供模块级更改摘要相对于1994年的0.3测试版。它列出了库中的名称更改、删除和添加相对于1994年的0.3beta版本。本移植指南还包括在名为PORTING的文件的smlnj-lib源目录中找到。有关库签名的文档,请参阅各种签名模块的源文件(例如。src/smlnj-lib/Util/哈希表sig.sml)。

有关顶层环境中更改的简明摘要,请参阅顶级环境比较第页。

2.1.1算术

2.1.2字符和字符串

添加了新的字符类型。字符不再由表示长度为1的字符串。分解字符串时,会得到一个列表字符,而不是单个字符串。

字符文字(#“A”)

功能爆炸内爆

字符分类器(例如。是AlphaNum)

将字符转换为字符串,反之亦然

子字符串

2.1.3列表

foldl、foldr代替折叠,重新折叠和他们的类型不同于折叠,重新折叠.

一系列新功能。

一些顶级绑定的函数不在SML'97中。(存在)

ListPair结构(zip、unzip、map、app)

2.2输入/输出

2.2.1. 文本IO

outstream=>TextIO.outstreaminstream=>TextIO.instream输入=>TextIO.inputNoutput=>文本IO.outputstd_out=>文本IO.stdOutstd_in=>文本IO.stdIn
-TextIO.output(TextIO.stdOut,“abc\n”);美国广播公司valit=():单位

2.2.2. 打印功能

val打印:字符串->单元
现在没有超载。仍然处于顶级水平。
打印3=>打印(Int.toString 3)print 3.0=>打印(Real.toString 3.0)
[参见TextIO结构,IMPERATIVE_IO签名]

2.3. 系统设施

2.3.1. 调用编译器

  • 使用:字符串->单位
    (绑定在顶层;Compiler.Interact.useFile的别名)
  • 编译器。Interact.useStream:TextIO.instream->单元
  • 2.3.2. Basis中的OS结构

    2.3.3. Basis中的Posix结构

    2.3.4. Unix结构

    2.4. SML/NJ设施

    2.4.1. SMLofNJ结构

    2.4.2. 有用的控制标志

    控制编译器警告消息。


    戴夫·麦奎因
    上次修改时间:1998年3月24日星期二17:20:26 EST