如何防止" - :unit =()"出现在ocaml toplevel的输出之后?

DrT*_*rsa 2 ocaml

这段代码

for i=0 to 5 do print_string "a" done;;
Run Code Online (Sandbox Code Playgroud)

将输出

aaaaaa- : unit = ()
Run Code Online (Sandbox Code Playgroud)

但是如何输出"aaaaaa"而不输出for-expression的值?

ako*_*ski 7

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

  • 这个特殊的程序在编译时可能不输出任何东西,因为它缺少某种`print_endline()`或`flush stdout`.当我还是一名学生时,通常会被这种情况所困扰,尽管在此期间可能会发生变化. (2认同)
  • 更新:我指的是http://caml.inria.fr/pub/old_caml_site/FAQ/FAQ_DEBUTANT-eng.html#impression_flush这个问题并没有体现在OCaml 3.12上,但可能仍然在Caml Light中. (2认同)