使用 OCaml 遊樂場
歡迎來到 OCaml 的瀏覽器內遊樂場!
OCaml 遊樂場 的目的是讓使用者,尤其是初學者,更容易開始使用 OCaml,而不用擔心安裝任何東西。 一旦你打開它,一切都準備好了可以使用。
它有一個簡單的雙面板介面:左側的編輯器面板和右側的輸出面板。
編輯器面板是你編寫程式碼的地方,輸出面板是顯示答案的地方。 很簡單。
在某種意義上,遊樂場比 toplevel 簡單得多,你不需要在提示符下一行一行地輸入你的程式碼,而是直接在編輯器面板中輸入或複製程式碼。 而且,也不需要用 ;;
結束表達式。 若要執行編輯器面板中的程式碼,請點擊編輯器面板底部的「執行」按鈕。
把它想像成一個你編寫 OCaml 程式碼的檔案。 你也可以隨時點擊輸出面板上的「清除輸出」按鈕來清除輸出。 別擔心,這不會影響你在編輯器面板上的程式碼。
你也可以點擊「分享」按鈕(編輯器面板底部的「執行」按鈕左側)與他人分享你寫的程式碼。 點擊「分享」後,只需複製網址並與他人分享即可。
如果你遇到任何困難,也可以使用頂部的搜尋欄查找標準函式庫。
讓我們輸入一些程式碼
當你第一次進入遊樂場時,你會看到以下內容。
別慌! 它只是一堆說明,以及編輯器面板上的一些範例程式碼,以及輸出面板上的 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>
自動完成
遊樂場也支援程式碼完成功能。 它透過根據上下文建議和完成使用者的輸入來幫助使用者。
注意事項
你可以從上面的程式碼範例中看到,你不需要在定義的末尾使用 ;;
。
這裡有一個小小的注意事項是,遊樂場的行為與 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 程式碼並享受樂趣。 祝你駭客愉快!