使用者:Renamed user 63506961370/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!
參考資料
[編輯]- ↑ xiaoR(2012年11月9日).走進OCaml的世界之環境搭建.於2013年10月19日查閱.
- ↑ C++ vs OCaml: Ray tracer comparison.於2013年10月19日查閱.
- ↑ 頂層環境的所有指令可以在The toplevel system (ocaml)找到。