标签: mosml

从多个文件编译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
查看次数

是否可以在标准机器学习中创建“通用”函数?

我想创建一个函数remove_duplicates,它接受list任何类型的 a (例如可以是 anint list或 abool list或 aint list list或 a whatever list)并返回没有重复的相同列表,这在标准机器学习中可能吗?

functional-programming ml sml smlnj mosml

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

如何编译多个SML文件?

如何在Standard-ML中编译多个文件?我有2个档案。

file1.sml

(* file1.sml *)
datatype fruit = Orange | Apple | None
Run Code Online (Sandbox Code Playgroud)

file2.sml

(* file2.sml *)
datatype composite = Null | Some of fruit
Run Code Online (Sandbox Code Playgroud)

如您所见,file2.sml正在使用中的内容file1.sml。我该如何编译此东西?

我正在使用mosmlc.exe并且在编译时mosmlc file2.sml(针对此问题):

(* file2.sml *)
use "file1.sml";
datatype composite = Null | Some of fruit
Run Code Online (Sandbox Code Playgroud)

我得到:

! use "file1.sml";
! ^^^
! Syntax error.
Run Code Online (Sandbox Code Playgroud)

那么,如何处理多个文件呢?

sml mosml

3
推荐指数
1
解决办法
309
查看次数

标准机器学习中命题逻辑公式的大小

我正在研究这个问题,其中命题逻辑公式表示为:

datatype fmla =
     F_Var of string
   | F_Not of fmla
   | F_And of fmla * fmla
   | F_Or of fmla * fmla 
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个返回命题逻辑公式大小的函数。命题变量的大小为 1;逻辑非的大小为 1 加上其子公式的大小;逻辑合取和逻辑析取的大小为 1 加上其子公式的大小。

我将如何尝试解决这个问题?

ml sml mosml

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

SML中来自元组的"Curry"

我试图定义一个函数包装器,用于在SML中计算元组.

fun curry f = fn (x, y) z => f x y z;
Run Code Online (Sandbox Code Playgroud)

给我错误

非标识符应用于模式.

我是ML的新手,不知道为什么模式匹配fn不起作用.

我怎么能做这个工作?

functional-programming sml mosml

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

Sml 元组长度

我感兴趣的是是否有可能的方法来获得 sml 中元组的长度?!查看示例

val tes = ((1,"test"),("test","some")) 
Lenght(tes) = 2
Run Code Online (Sandbox Code Playgroud)

我想要一个问题解决有一个问题,它说要获取学生列表,其中包含每个学生信息的列表,但学生信息在两种类型中有所不同,有些就像

(1,"test","nick") 
Run Code Online (Sandbox Code Playgroud)

有些就像

("name","nick")
Run Code Online (Sandbox Code Playgroud)

所以它想返回学生列表中每个列表的第一个元素,如下所示:

((1,"test","nick"),("test2","nick2"),(2,"test3","nick3"))

Return > (1,"test2",2)
Run Code Online (Sandbox Code Playgroud)

这里有更多信息 M Molbdnilo @molbdnilo

sml smlnj mosml

0
推荐指数
1
解决办法
67
查看次数

标签 统计

mosml ×6

sml ×6

smlnj ×3

functional-programming ×2

ml ×2

mlton ×1

polyml ×1