可能是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算术
雷姆 和
引用 不在顶层装订,不中缀 Int类型的多精度(Int、LargeInt、Int31、Int32、[IntInf]) 新词类型,多精度(word8,word31=word,word32)
2.1.2字符和字符串
添加了新的字符类型。 字符不再由表示 长度为1的字符串。 分解字符串时,会得到一个列表 字符,而不是单个字符串。
字符文字(#“A”)
功能
爆炸 和
内爆
字符分类器(例如。
是AlphaNum )
将字符转换为字符串,反之亦然
子字符串
2.1.3列表
foldl、foldr 代替
折叠,重新折叠 和他们的 类型不同于
折叠,重新折叠 .
一系列新功能。
一些顶级绑定的函数不在SML'97中。 (存在)
ListPair结构(zip、unzip、map、app)
2.2输入/输出 outstream=>TextIO.outstream instream=>TextIO.instream 输入=>TextIO.inputN output=>文本IO.output std_out=>文本IO.stdOut std_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.2. Basis中的OS结构
导出ML ,堆图像文件,
@SML负载 命令行参数 问题: 调用函数exportML,如 -SMLofNJ.exportML“图像”; 创建一个名为“image.mipseb-irix”的文件 可执行文件,而使用SML/NJ 93,我会得到一个名为“image”的可执行文件。 我想知道我的导出是否正确,或者是否有 使用导出图像的新程序?
答案: 文件“image.mipseb-irix”是堆映像,而不是可执行文件。 你可以 按如下方式加载: %sml@SMLload=图像 请注意,当 指定图像文件时,将进行推断。
2.4.2. 有用的控制标志
控制编译器警告消息。