我怎样才能防止“以下情况”:单位=()”;在ocaml顶级中我的输出之后出现?

我怎样才能防止“以下情况”:单位=()”;在ocaml顶级中我的输出之后出现?,ocaml,Ocaml,此代码 for i=0 to 5 do print_string "a" done;; 将输出 aaaaaa- : unit = () 但是,如何只输出“aaaaa”而不输出for表达式的值呢?您并不是在真正打印表达式的值;只是您在解释器会话中,默认情况下,解释器会打印计算表达式的值/类型。如果你编译了你的程序,它只会打印a。你可以编译你的程序;这样,您就不会从解释器中获得类型信息,即:unit=()这个特定的程序在编译时可能不会输出任何内容,因为它缺少某种打印尾行()或刷新标准输出。当我还

此代码

for i=0 to 5 do print_string "a" done;;
将输出

aaaaaa- : unit = ()

但是,如何只输出“aaaaa”而不输出for表达式的值呢?

您并不是在真正打印表达式的值;只是您在解释器会话中,默认情况下,解释器会打印计算表达式的值/类型。如果你编译了你的程序,它只会打印a。

你可以编译你的程序;这样,您就不会从解释器中获得类型信息,即
:unit=()

这个特定的程序在编译时可能不会输出任何内容,因为它缺少某种
打印尾行()
刷新标准输出。当我还是一名学生的时候,我经常会被这个问题所困扰,尽管在此期间事情可能已经发生了变化。更新:我指的是,这个问题并没有在OCaml 3.12中表现出来,但可能仍然存在于Caml中。