使用 OCaml 遊樂場

歡迎來到 OCaml 的瀏覽器內遊樂場!

OCaml 遊樂場 的目的是讓使用者,尤其是初學者,更容易開始使用 OCaml,而不用擔心安裝任何東西。 一旦你打開它,一切都準備好了可以使用。

它有一個簡單的雙面板介面:左側的編輯器面板和右側的輸出面板

編輯器面板是你編寫程式碼的地方,輸出面板是顯示答案的地方。 很簡單。

在某種意義上,遊樂場比 toplevel 簡單得多,你不需要在提示符下一行一行地輸入你的程式碼,而是直接在編輯器面板中輸入或複製程式碼。 而且,也不需要用 ;; 結束表達式。 若要執行編輯器面板中的程式碼,請點擊編輯器面板底部的「執行」按鈕。

把它想像成一個你編寫 OCaml 程式碼的檔案。 你也可以隨時點擊輸出面板上的「清除輸出」按鈕來清除輸出。 別擔心,這不會影響你在編輯器面板上的程式碼。

你也可以點擊「分享」按鈕(編輯器面板底部的「執行」按鈕左側)與他人分享你寫的程式碼。 點擊「分享」後,只需複製網址並與他人分享即可。

如果你遇到任何困難,也可以使用頂部的搜尋欄查找標準函式庫。

讓我們輸入一些程式碼

當你第一次進入遊樂場時,你會看到以下內容。

Ocaml Playground

別慌! 它只是一堆說明,以及編輯器面板上的一些範例程式碼,以及輸出面板上的 OCaml 版本和編譯資訊。

你可以簡單地按下 Ctrl+A 和 Backspace 來清除編輯器面板,並開始編寫 OCaml 程式碼。 同樣地,你可以按下輸出面板上的「清除輸出」按鈕來清除面板。

讓我們從簡單的事情開始。 在你的編輯器面板上輸入以下內容,然後點擊執行。

2+3

你會看到以下輸出。

- : int = 5

現在,清除輸出,也刪除編輯器面板上的內容。 讓我們嘗試一些字串。 繼續在編輯器面板中輸入以下內容,然後點擊執行。

"OCaml is amazing"

你會看到以下輸出。

- : string = "OCaml 很棒"

太棒了! 你做得很好。 現在讓我們編寫一個簡短的程式。 我將使用我們進入遊樂場時看到的程式碼範例。

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>

自動完成

遊樂場也支援程式碼完成功能。 它透過根據上下文建議和完成使用者的輸入來幫助使用者。

Autocomplete in the OCaml Playground

注意事項

你可以從上面的程式碼範例中看到,你不需要在定義的末尾使用 ;;

這裡有一個小小的注意事項是,遊樂場的行為與 OCaml toplevel 不同。 每次你點擊「執行」按鈕時,所有的表達式和定義都會依序評估。 當你寫入 2+3,然後在下一行寫入字串 "這是一個字串"看這裡)時,你會看到一個錯誤訊息說

Line 1, characters 2-3:
Error: This expression has type int
       This is not a function; it cannot be applied.

相反地,當你用 ;; 分隔這些表達式時,像這樣,或者當你將它們綁定到名稱時,像這樣,它們就會一個接一個地成功評估。

底線

恭喜! 你已經到達尾聲了。 希望到現在為止,你已經對如何使用 OCaml 遊樂場 有了更好的概念。 使用這個來練習 OCaml 程式碼並享受樂趣。 祝你駭客愉快!

仍然需要協助嗎?

協助改善我們的文件

所有 OCaml 文件都是開源的。 看到有錯誤或不清楚的地方嗎? 送出 pull request。

OCaml

創新。社群。安全。