如何在 utop 中生成多行代码?
How can I produce multiline code in utop?
在Haskell中,我们可以在终端输入多行代码,将其括在“:{”和“:}”之间。例如,键入
> :{ main = do
> print("Hello") :}
在ghci中,我们可以调用main
。我们如何在 Ocaml on utop 中做到这一点?
评论很好地解决了这个问题,但只是有答案,没有魔法。传统的 OCaml 顶层 (简单地调用 ocaml
) 和 utop
都会读入,直到找到终止的 ;;
标记。
例如:
─( 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 = ()
在Haskell中,我们可以在终端输入多行代码,将其括在“:{”和“:}”之间。例如,键入
> :{ main = do
> print("Hello") :}
在ghci中,我们可以调用main
。我们如何在 Ocaml on utop 中做到这一点?
评论很好地解决了这个问题,但只是有答案,没有魔法。传统的 OCaml 顶层 (简单地调用 ocaml
) 和 utop
都会读入,直到找到终止的 ;;
标记。
例如:
─( 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 = ()