Question

I've never programmed in SML before, and I'm using SML/NJ. It keeps giving me the following at the end of each program I run:

val it = () : unit

What does this mean? Is it something I'm doing wrong?

Was it helpful?

Solution

it is the name of the result returned by your code. () : unit is a trivial placeholder value returned from things that are side-effect based.

It's more obvious when you enter something that's more commonly an expression at the prompt, e.g...

- 2 * 7;
  val it = 14 : int

OTHER TIPS

You can also use it for the side effect of printing things out:

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
*)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top