16得票3回答
SML中的`o`运算符只适用于单参数函数吗?

o组合操作符(如val x = foo o bar,其中foo和bar都是函数),只能用于单参数函数和/或参数数量相等的函数吗? 如果不是,那么如何将foo(x,y)与bar(x)组合起来的语法是什么。

15得票1回答
如何在SML中将负整数转换为带有减号而不是波浪号的字符串?

标准的SML库函数Int.toString对于负数使用~前缀而不是-。是否有一个库函数可以使用-代替~呢,除了编写自己的函数?fun i2s i = if i < 0 then "-" ^ Int.toString (~i) else Int.toString i

12得票1回答
如何在SML的case语句中打印输出?

我刚开始学习SML,我正在尝试修改一些代码以便理解它正在做什么(我找不到一个好用的SML/NJ调试器,但这是另一个问题)。fun type_check e theta env non_gens = case e of constant_int _ => (integer,...

12得票1回答
SML警告:使用空列表或NONE选项时,类型变量不会被泛化

我怎么也想不出为什么下面的SML函数在我的作业问题中会引发警告:fun my_func f ls = case ls of [] => raise MyException | head :: rest => case f head of ...

11得票1回答
仅使用SML/NJ打印输出

我正在尝试使用SML/NJ,使用sml < source.sml运行代码,但它会输出太多信息。 例如,这是source.sml的内容:fun fac 0 = 1 | fac n = n * fac (n - 1) val r = fac 10 ; print(Int.toStrin...

11得票2回答
在OSX 10.6下运行smlnj出现问题

我从这里下载并安装了适用于x86的SML NJ实现DMG:http://smlnj.cs.uchicago.edu/dist/working/110.72/index.html 但是,当我打开终端窗口并转到/usr/local/smlnj-110.72/bin,并运行sml时,出现bash命...

10得票3回答
在标准ML中,如何抑制“val it”输出

我正在使用标准ML(SML / NJ)编写一个“脚本”,以便根据我的喜好设置交互式环境。该脚本的最后一件事是打印一条消息,指示一切都顺利完成。基本上,最后一行是这样的:print "SML is ready.\n"; 当我运行脚本时,一切都很顺利,但SML解释器会显示来自print函数的返回值...

10得票1回答
在REPL中,输出被截断并带有#符号

我写了一个函数,它按预期工作,但我不明白为什么输出是那样的。 函数:datatype prop = Atom of string | Not of prop | And of prop*prop | Or of prop*prop; (* XOR = (A And Not B) OR (...

9得票1回答
如何在SML中打印变量?

我刚接触SML,在调试时通常会打印变量以查看它是否与我预期的相符。我想要在函数内部打印出一个变量。现在我有以下代码:function header.. let val prod val prod = c + x * y; in (print "product "; prod mod ...

9得票4回答
如何在 SML 的 IF 语句中使用 AND 运算符

我是 SML 的新手。 在 IF 语句中如何使用 AND 运算符? 这是我的代码: val y = 1; val x = 2; if (x = 1 AND y = 2) then print ("YES ") else print("NO "); 我的错误是: stdIn:66.9-67...