我是 SML 的新手,在调试时我通常会打印出变量以查看它是否符合我的预期。我想在一个函数中打印出一个变量
,我有这个:
函数头..
let val prod
val prod = c + x * y;
in
(print "product "; prod mod 10):: (multiplyAux (prod div 10) xs y)
end;
Run Code Online (Sandbox Code Playgroud)
现在它打印字符串产品,但我希望能够打印变量 prod 本身。
唯一print可以打印的是字符串。所以要打印一个数值,必须先把它转换成一个字符串。例如:
- print("product " ^ (Int.toString (43 mod 5)) ^ "\n");
product 3
val it = () : unit
Run Code Online (Sandbox Code Playgroud)
请注意,Int.toString使用柯里化函数语法(即它的参数不需要元组),因此周围的括号43 mod 5是为了使值清晰而不是Int.toString工作。
- Int.toString 5;
val it = "5" : string
Run Code Online (Sandbox Code Playgroud)