使用者:Gqqnb/OCaml入門教程/(一)簡介

網絡的中文圈裡,有一些零星的OCaml介紹或教程,但大多都不成系統。OCaml的中文書籍也很少,所以要學習的需要看英文。在這幾片系列文章里,我將翻譯一些英文資料,並加入自己的理解,希望能夠寫成一部比較完整的入門教程。

簡介 編輯

OCaml是函數式的編程語言,與C/C++/C#/Java不同。OCaml原來稱為Objective Caml,而Caml又是ML的方言(ML不是Make Love)。ML誕生自1973年,OCaml誕生自1996年。

從TIOBE編程語言排名來看,OCaml很少進入前50名,至少2013年10月沒有。OCaml有個地方很吸引人,就是它的運行速度很快!根據xiaoR的測試,在不優化時,OCaml的速度是C的1.75倍;在優化時,OCaml是C的9.5倍(OCaml運行時間0.002s)。[1]在另一項測試中,OCaml和C旗鼓相當。[2]

  • OCaml可以編譯為字節碼(類似C#的中間語言或Java的字節碼);也可以編譯為本地代碼,這點C#做不到。
  • OCaml可以編寫圖形界面程序。
  • OCaml沒有像C#那樣有專門的集成開發環境——Visual Studio。

搭建開發環境 編輯

在Windows里,去OCaml官網下載安裝文件,安裝即可。編寫的話我用Vim。

OCaml有頂層環境(Toplevel),用來即時執行代碼。在cmd里輸入ocaml,就進入了頂層環境。在#號後面輸入1 + 2 * 3;;頂層環境就會返回- : int = 7

將以下代碼寫入D:\hello.ml,然後輸入#use "D:\\hello.ml";;[3]就在頂層環境里編譯並執行代碼,你會看到Hello World!輸出在屏幕上。

 print_endline "Hello World!"

編譯代碼不是在頂層環境里。如果你已經進入頂層環境了,在井號後面打#quit;;就可以退出。

下面的命令把hello.ml編譯成字節碼

$ ocamlc hello.ml -o hello.exe

下面的命令把hello.ml編譯成優化過的本地代碼

$ ocamlopt hello.ml -o hello.exe

然後這麼執行:

$ ./hello
Hello World!

參考資料 編輯

  1. xiaoR(2012年11月9日).走進OCaml的世界之環境搭建.於2013年10月19日查閱.
  2. C++ vs OCaml: Ray tracer comparison.於2013年10月19日查閱.
  3. 頂層環境的所有指令可以在The toplevel system (ocaml)找到。