我有一个包含许多文件的项目,我希望它能与大多数流行的编译器一起使用.
不幸的是,PolyML和SML/NJ需要use语句,而MosML还需要使用loadpoly或sml无法识别的基础库结构.
最重要的是,MLton和MLKit需要一个完全不同的.mlb文件,只需列出文件名,并且还需要显式导入基础库,这是以与MosML不同的方式完成的:
$(SML_LIB)/basis/basis.mlb
Run Code Online (Sandbox Code Playgroud)
是否有一些标准的通用"包含此文件"命令,如果它不存在,是否有其他方法让所有编译器从一个入口点文件中读取?
PS不会介意有人对编译器差异进行小吵闹.我总是对人们的想法感兴趣,而且没有太多可用的信息:-)
我想创建一个函数remove_duplicates,它接受list任何类型的 a (例如可以是 anint list或 abool list或 aint list list或 a whatever list)并返回没有重复的相同列表,这在标准机器学习中可能吗?
如何在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)
那么,如何处理多个文件呢?
我正在研究这个问题,其中命题逻辑公式表示为:
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 加上其子公式的大小。
我将如何尝试解决这个问题?
我试图定义一个函数包装器,用于在SML中计算元组.
fun curry f = fn (x, y) z => f x y z;
Run Code Online (Sandbox Code Playgroud)
给我错误
非标识符应用于模式.
我是ML的新手,不知道为什么模式匹配fn不起作用.
我怎么能做这个工作?
我感兴趣的是是否有可能的方法来获得 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