如何在 utop 中生成多行代码?

How can I produce multiline code in utop?

在Haskell中,我们可以在终端输入多行代码,将其括在“:{”和“:}”之间。例如,键入

> :{ main = do
> print("Hello") :}

在ghci中,我们可以调用main。我们如何在 Ocaml on utop 中做到这一点?

评论很好地解决了这个问题,但只是有答案,没有魔法。传统的 OCaml 顶层 (简单地调用 ocamlutop 都会读入,直到找到终止的 ;; 标记。

例如:

─( 17:36:11 )─< command 0 >───────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # print_endline 
"Hello, world!";;
Hello, world!
- : unit = ()
─( 17:36:11 )─< command 1 >───────────────────────────────────────────────────────────────────────────────────────────────────{ counter: 0 }─
utop # let msg = "Hello, world!"
in
  print_endline msg;;
Hello, world!
- : unit = ()