我开始学习标准ML,并尝试使用New Jersey标准ML编译器。 现在我可以使用交互式环境,但是如何将源文件编译为独立的可执行文件呢? 例如在C中,我们可以这样写: $ gcc hello_world.c -o helloworld 然后运行helloworld二进制文件。 我查阅...
能否有人解释一下这个警告的意思是什么?stdIn:18.35 Warning: calling polyEqual 以下语句中,为什么我使用的是 "a 而不是 'a ?val alreadyVisited = fn : ''a * ''a list -> bool 这是我的函数...
我在使用SML/NJ交互式系统时遇到了一些问题,具体来说,当我尝试使用箭头键(左或右)来更正我输入的表达式或者使用上箭头键重复上次输入的表达式时,我的终端会打印出一些代码。(例如,使用上箭头键打印^[[A,使用左箭头键打印^[[D等等)。尽管我仍然可以使用该系统,但这使得操作非常繁琐。 我已...
我正在学习使用SML/NJ方言的机器学习。我想知道是否有单行注释运算符,因为我找到了块注释运算符 (* ... *),但我非常需要单行注释。 有什么建议吗?还是说我只能使用块注释?
我有下面这个函数,它可以正常工作:(fn x => x * 2) 2; 但是这个不起作用:(fn x y => x + y ) 2 3; 有人能告诉我为什么吗?或者给我一些提示让它工作起来?
我已经查看了SMLNJ用户指南,但是没有找到任何关于调试功能的内容。我希望能够查看函数调用栈或者逐步执行函数。这是否可能?是否有其他类似的SML变体实现可以提供这个功能?
我想让SML/NJ在顶层打印结果,而不是到处放置#号。 根据一些旧文档(以及2001年在该新闻组发布的帖子),可以使用Compiler.Control.Print.printDepth来实现。 然而,在SML / NJ版本110.7上,这只会导致错误:- Compiler.Control....
我知道在REPL中分号被用作终止符。但是我对于在源文件中何时使用它们感到困惑。 例如,在val x = 1后面不需要使用分号。但是如果我在use "foo.sml"后省略它,编译器将抱怨。 那么,在使用分号方面有什么规则呢?