OCaml 頂層互動式介面簡介
OCaml 的頂層互動式介面是使用者與 OCaml 之間的對話。使用者撰寫 OCaml 程式碼,而 UTop 會評估它。這也是為什麼它也稱為讀取-求值-列印迴圈 (REPL)。存在多個 OCaml 頂層互動式介面,例如 ocaml
和 utop
。我們建議使用 UTop,它是 OCaml 平台工具鏈的一部分。
要執行 UTop,我們使用 utop
命令,如下所示
$ utop
────────┬─────────────────────────────────────────────────────────────┬─────────
│ Welcome to utop version 2.12.1 ()! │
└─────────────────────────────────────────────────────────────┘
Type #utop_help for help about using utop.
─( 17:00:09 )─< command 0 >──────────────────────────────────────{ counter: 0 }─
utop #
按 Ctrl-D
(檔案結束)或輸入 #quit;;
以退出 utop
。
UTop 會顯示雜湊提示符號 #
,類似於 CLI 中的 $
。這個 #
表示它正在等待輸入,因此您可以在提示符號後開始撰寫程式碼。若要評估它,請新增一個雙分號 ;;
以表示運算式結束,然後按 Enter
。
以雙分號結尾的行會觸發剖析、類型檢查和評估提示符號和雙分號之間輸入的所有內容。對雙分號的解釋不是由 OCaml 直譯器完成的;而是由 UTop 完成的。一旦雙分號終止的條目評估結束,REPL 就會等待另一個輸入。
以 #
開頭的程式碼範例旨在複製/貼上到 UTop 中。
例如,考慮以下程式碼片段
# 2 + 2;;
- : int = 4
在上面的程式碼片段中,2 + 2;;
是使用者的輸入,而 - : int = 4
是 OCaml 的輸出。
如果您需要在按下 Enter
之前修改程式碼,可以使用鍵盤上的向右和向左箭頭在文字內移動。向上和向下箭頭允許您瀏覽先前評估的運算式。在沒有雙分號 ;;
的情況下按下 Enter
會建立新的一行,因此您可以使用這種方式撰寫多行運算式。
以雜湊字元 #
開頭的命令,例如 #quit
或 #help
,不會由 OCaml 評估;它們會被 UTop 解釋為命令。
您現在已準備好使用 UTop 進行駭客了!如果您在頂層互動式介面遇到任何問題,請隨時在 Discuss 上提問。
注意:雙分號
;;
在頂層互動式介面之外也是 OCaml 語法中的有效符號。在 OCaml 原始碼中,它是一個空操作,即它不會觸發任何行為,因此會被編譯器忽略。如果您的目的是將檔案編譯或解譯為腳本,則在 OCaml 中撰寫時可以而且應該避免使用雙分號。保留它們不會產生錯誤,但它們是無用的。編譯器容許它們,以便允許從 UTop 複製貼上到檔案,而無需刪除它們。