val it =():SML中的单位是什么意思?

时间:2013-10-22 22:36:23

标签: sml smlnj

我以前从未用SML编程,而且我正在使用SML / NJ。它在我运行的每个程序结束时不断给我以下内容:

val it = () : unit

这是什么意思?这是我做错的事吗?

2 个答案:

答案 0 :(得分:3)

it是您的代码返回的结果的名称。 () : unit是从基于副作用的事物返回的一个微不足道的占位符值。

当您在提示符下输入更常见的表达式时更明显,例如......

- 2 * 7;
  val it = 14 : int

答案 1 :(得分:2)

你也可以用它来打印出来的副作用:

fun printpos n = 
    if n <= 0 then (print "not positive!\n") 
    else (print (Int.toString n); print "\n");

 printpos ~1;
 printpos 1;

(* Output:
val printpos = fn : int -> unit
not positive!
val it = () : unit
1
val it = () : unit
*)