使用 OCaml Playground
欢迎来到 OCaml 的浏览器内游乐场!
OCaml Playground 旨在让用户,尤其是初学者更容易开始使用 OCaml,而无需担心安装任何东西。一旦打开它,一切都可以立即使用。
它有一个简单的界面,包含两个面板:左侧的 *编辑面板* 和右侧的 *输出面板*。
编辑面板是您编写代码的地方,输出面板是显示答案的地方。简单易用。
从某种意义上说,游乐场比 顶层 简单得多,您无需在提示符下逐行输入代码,而是直接在编辑面板中键入或粘贴代码。另外,也不需要在表达式末尾加上 ;;
。要运行编辑面板中的代码,请单击编辑面板底部的“运行”按钮。
把它想象成一个您编写 OCaml 代码的文件。您也可以随时通过单击输出面板上的“清除输出”按钮来清除输出。别担心,它不会影响您在编辑面板上的代码。
您还可以通过单击“共享”按钮(编辑面板底部“运行”按钮左侧)与其他人分享您编写的代码。单击“共享”后,只需复制 URL 并与他人分享即可。
如果您遇到困难,也可以使用顶部的搜索栏查找标准库。
让我们输入一些代码
当您第一次进入游乐场时,您将看到以下内容。
不要惊慌!它只是编辑面板上的一些说明和示例代码,以及输出面板上有关 OCaml 版本和编译信息。
您可以通过简单地按 Ctrl+A 和 Backspace 来清除编辑面板,然后开始编写 OCaml 代码。同样,您也可以按输出面板上的“清除输出”按钮来清除面板。
让我们从一些简单的东西开始。在您的编辑面板上键入以下内容,然后单击运行。
2+3
您应该看到以下输出。
- : int = 5
现在,清除输出,并删除编辑面板上的内容。让我们试用一些字符串。继续在编辑面板上键入以下内容,然后单击运行。
"OCaml is amazing"
您应该看到以下输出。
- : string = "OCaml is amazing"
太棒了!你做得很好。现在让我们编写一个简短的程序。我将使用我们在进入游乐场时看到的代码示例。
let num_domains = 2
let n = 20
let rec fib n =
if n < 2 then 1
else fib (n-1) + fib (n-2)
let rec fib_par n d =
if d <= 1 then fib n
else
let a = fib_par (n-1) (d-1) in
let b = Domain.spawn (fun _ -> fib_par (n-2) (d-1)) in
a + Domain.join b
let () =
let res = fib_par n num_domains in
Printf.printf "fib(%d) = %d\n" n res
输出将是以下内容。
fib(20) = 10946
val num_domains : int = 2
val n : int = 20
val fib : int -> int = <fun>
val fib_par : int -> int -> int = <fun>
自动补全
游乐场还支持代码补全。它通过根据上下文建议和完成用户输入来帮助用户。
注意事项
正如您从上面的代码示例中看到的,您无需在定义末尾使用 ;;
。
这里要注意的是,游乐场的行为与 OCaml 顶层不同。每次您单击“运行”按钮时,所有表达式和定义都会按顺序进行评估。当您编写 2+3
并在下一行编写一个字符串 "this is a string"
(请参见此处) 时,您将看到一个错误提示
Line 1, characters 2-3:
Error: This expression has type int
This is not a function; it cannot be applied.
相反,当您用 ;;
分隔这些表达式时,像这样,或者当您将它们绑定到名称时,像这样,它们将被成功地评估,一个接一个。
底线
恭喜!您已经完成了。希望到现在为止,您已经对如何使用 OCaml Playground 有了更好的了解。使用它来练习 OCaml 代码,并享受乐趣。快乐编程!