标签: mlton

从多个文件编译SML项目

我有一个包含许多文件的项目,我希望它能与大多数流行的编译器一起使用.

不幸的是,PolyML和SML/NJ需要use语句,而MosML还需要使用loadpoly或sml无法识别的基础库结构.

最重要的是,MLton和MLKit需要一个完全不同的.mlb文件,只需列出文件名,并且还需要显式导入基础库,这是以与MosML不同的方式完成的:

$(SML_LIB)/basis/basis.mlb
Run Code Online (Sandbox Code Playgroud)

是否有一些标准的通用"包含此文件"命令,如果它不存在,是否有其他方法让所有编译器从一个入口点文件中读取?

PS不会介意有人对编译器差异进行小吵闹.我总是对人们的想法感兴趣,而且没有太多可用的信息:-)

sml smlnj mlton polyml mosml

6
推荐指数
1
解决办法
288
查看次数

霍纳对双变量多项式的规则

Horner的规则用于简化在特定变量值处评估多项式的​​过程.https://rosettacode.org/wiki/Horner%27s_rule_for_polynomial_evaluation#Standard_ML

我很容易将使用SML的方法应用于一个变量多项式,表示为int列表:

fun horner coeffList x = foldr (fn (a, b) => a + b * x) (0.0) coeffList
Run Code Online (Sandbox Code Playgroud)

这很好用.我们可以使用以下方法调用它:

- val test = horner [1.0, 2.0, 3.0] 2.0;
> val test = 17.0 : real
Run Code Online (Sandbox Code Playgroud)

[1.0, 2.0, 3.0]表示多项式系数的列表在哪里,2.0是变量x的值,并且17.0是评估多项式的​​结果.

我的问题是这样的:我们有一个由(int列表列表)表示的两个变量多项式.高级列表中的第n项将表示包含y ^ n的所有多项式项,并且低级列表中的第m项将表示包含x ^ m的所有多项式项.

例如:[[2],[3,0,0,3],[1,2]]是多项式

(2(x ^ 0)(y ^ 0))+
(3(x ^ 0)(y ^ 1)+ 0(x ^ 1)(y ^ 1)+ 0(x ^ 2)(y ^ 1) + 3(x ^ 3)(y ^ 1))+ …

functional-programming sml smlnj polynomial-math mlton

5
推荐指数
1
解决办法
662
查看次数

Mlton编译器无法正常工作(不提供任何输出)

在Ubuntu上安装了MLton编译器(sudo apt-get install mlton)并且在安装时没有任何问题(貌似).

当我尝试使用它(例如"mlton test.sml")时,它会停留一秒钟,然后什么也不返回.如果我尝试在我正在尝试编译的文件中打印某些东西,那就什么都没有.然而,奇怪的是如果我给它糟糕的ML代码("x = 2",没有val),它会吐出像"未定义变量"等常规错误.

我在这里和其他地方在网上看过,似乎并没有关注我正在经历的事情.也许我只是用错了?

提前致谢.

ml sml mlton

2
推荐指数
1
解决办法
77
查看次数