问题标签 [mosml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sml - 如何编译多个 SML 文件?
在 Standard-ML 中编译多个文件是如何工作的?我有 2 个文件。
file1.sml
:
并且file2.sml
:
如您所见file2.sml
,使用file1.sml
. 我怎样才能使这个东西编译?
我正在使用mosmlc.exe
和编译时mosmlc file2.sml
(至于这个问题):
我得到:
那么,如何处理多个文件呢?
sml - 莫斯科 ML 编译器的输出选项
我正在.sml
使用mosmlc.exe
. 问题是.ui
和.uo
输出文件放在我的输入.sml
文件的同一目录中。我想做这样的事情:
这样输出文件将在out/
文件夹中创建。但看起来-o
选项用于不同的东西(根据文档)。但是,如果我使用这样的选项运行,则无论如何都会在与输入文件相同的目录中创建输出文件。
如何指定输出文件夹?没有关于此的文档,并且编译器没有列出编译器选项的帮助选项(非常非常烦人)。
从源代码
通过检查编译器入口点的源代码,我可以理解:
- 没有列出所有选项和用法的帮助选项(很糟糕,也许我应该考虑在他们的仓库中进行更改以支持这一点)
- 没有输出选项
所以,看起来我无法做到这一点......你能确认一下吗?
language-lawyer - 根据定义,这个片段是合法的标准 ML 吗?
根据定义,下面给出的代码片段是否合法标准 ML?它使用 Poly/ML 进行类型检查,但不使用 Moscow ML:
莫斯科 ML 给出的错误是:
我尝试使用显式类型签名uncons
:
但这只会使错误消息更加本地化:
如果有人感兴趣,这里是片段最初来自的地方。
arguments - 如何从在 SML 中作为参数传递的函数访问参数
我是 SML 编码的新手,仍在尝试理解模式匹配。我试图找出如何从在 SML 中作为参数传递的函数访问参数。例如,如果一个函数有 2 个参数,一个函数和一个整数,我如何访问参数函数具有的参数(为简单起见,假设它只有一个)。这个问题在 SML 中是否有意义?这是一些代码,它不起作用,但我认为它说明了我正在尝试做的事情。
sml - 从多个文件编译 SML 项目
我有一个包含许多文件的项目,我希望它可以与最流行的编译器一起使用。
不幸的是,PolyML 和 SML/NJ 需要use
语句,而 MosML 还需要使用 显式加载基础库结构load
,poly 或 sml 都无法识别。
最重要的是,MLton 和 MLKit 需要一个完全不同的 .mlb 文件,只是列出文件名,并且还需要显式导入基础库,这与 MosML 以不同的方式完成:
是否有一些标准的通用“包含此文件”命令,如果不存在,是否有其他方法可以让所有编译器从一个入口点文件中读取?
PS不介意有人对编译器差异进行小幅咆哮。我总是对人们的想法感兴趣,并且没有太多可用的信息:-)
sml - 使用 MLton 和 MosML 退出进程(缺少进程模块)
我正在尝试编写可以在 mlton 或 mosml 上编译的代码。
在我的 mosml 中,我可以按如下方式在失败时退出。
但是,当我尝试重用相同的代码并在 mlton 上编译时。它在其库集中找不到 Process。请让我知道我在编写可在一个源代码文件中的任一平台上运行的代码方面的选择。
list - 如何每第 n 轮将元素添加到列表中?
我需要编写一个separate
类型的函数,int * 'a * 'a list -> 'a lst
以便
返回在列表的每个元素之后separate (k, x, l)
插入元素的列表(从列表末尾开始计数)。例如,应该返回和
应该返回。x
k
l
separate (1, 0, [1,2,3,4])
[1,0,2,0,3,0,4]
separate (3, 0, [1,2,3,4])
[1,0,2,3,4]
到目前为止,这就是我所拥有的,但它会导致错误。谁能帮我?
sml - 使用预定义的复合函数在标准 ML 中编写幂函数
在标准 Ml 中编写幂函数时遇到问题。我正在尝试编写一个名为exp
type的函数int -> int -> int
。
应用程序exp b e
,对于非负数e
,应该返回b^e
。
例如,exp 3 2
应该返回 9。exp
必须使用compound
下面提供的函数来实现。exp
不应该直接调用自己。这是compound
函数,它接受一个值n
、一个函数和一个值x
。它所做的只是将函数应用于值 xn 次。
我很难弄清楚如何在没有递归的情况下编写这个函数,并且必须使用一个只能使用一个参数的函数的函数。任何人都知道从哪里开始?
这就是我所拥有的:
我知道这是行不通的,因为如果我输入 2^5 它会做:2*2、4*4、16*16 等。
list - SML:通过列表获取其他所有值的最佳方式是什么?
我最近在 sml 中做了很多练习,我在教科书中发现的一个问题是要求创建一个函数,将函数应用于列表中的奇数索引值。当试图解决这个问题时,我真的不明白如何获得其他所有价值。例如
在上面我知道我们可以通过 x 值按顺序获取值,但是现在有没有办法应用它来仅获取奇数索引值?抱歉,如果这是一个简单的问题,sml 是一种有趣但令人困惑的语言。
sml - 插入函数中的 SML 未绑定值标识符错误
我的单独功能有问题。单独返回一个列表,该列表在列表 l 的每个 k 元素之后插入元素 x(从列表末尾开始计数)。例如,单独的 (1, 0, [1,2,3,4]) 应该返回 [1,0,2,0,3,0,4] 和单独的 (3, 0, [1,2,3, 4]) 应该返回 [1,0,2,3,4]。每当我对其进行任何测试时,我都会收到错误消息:
这是我正在使用的代码:
任何人都知道可能导致错误的原因是什么?