User: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)找到。