gpt4 book ai didi

sml - 将 Successor ML 与 SML/NJ 结合使用

转载 作者:行者123 更新时间:2023-12-03 21:28:34 26 4
gpt4 key购买 nike

当我看到 SML/NJ 最近对 version 110.79 进行了一些重大更改时,我感到很惊喜,这是朝着称为 Successor ML 的方向发展的一部分。这似乎是 SML/NJ 和 MLton 之间的合作项目,预示着 SML 的 future 。

但是,当我尝试使用一些新功能时,我似乎遇到了一个奇怪的错误(在 64 位 Windows 7 上)。为了尝试一下,我在一个名为 sml_successor_test.sml 的文件中编写了以下内容:

Control.succML := true;
val n = 123_456;
print (Int.toString n);

当我尝试使用 use "C:\Programs\sml_successor_test.sml"; 将它加载到 REPL 中时,编译器在文件的第二行(它使用一种应该启用的新型数字文字)犹豫不决。但是 - 当我立即运行与以前完全相同的 use 命令时 - 它可以工作。

如果首先在 REPL 中使用 Control.succML := true;,然后使用 use 加载文件(从文件中删除该行后),它确实可以工作。另一方面,如果我只是启动 SML,启用 succML ,然后直接在 REPL 中分配 val n = 123_456; ,它第一次失败但后来工作。

总而言之——在评估 Control.succML := true 和它生效之间似乎存在一个奇怪的滞后,这种滞后发生在某些情况下而不是其他情况。知道这背后是什么以及任何解决方法吗?

最佳答案

这在 Mac OS X 上也发生在我身上。不过,我所做的是使用 -Cparser.succ-ml=true我的旗帜 sml别名,其行为符合预期:

alias sml="rlwrap /usr/local/bin/sml -Cparser.succ-ml=true"

我现在忘记了 Windows 等价物是什么。您可能需要创建自己的 sml 包装脚本并将其放在 PATH 中的 SML/NJ 脚本之前。 .

关于sml - 将 Successor ML 与 SML/NJ 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com