Caml Information

Caml Lecture Information

Our ML Dialect

There are more ML dialects out there than you would believe. We are going to use OCaml, version 3.11 (any version from 3.06 on should be good enough for our purposes). OCaml is not completely compatible with the most standard dialect of ML, SML, but is nonetheless similar. It includes classes and objects, something not found in SML. I will often call OCaml just "Caml", you can view the two as synonyms.

Installing Caml on Your Machine

Caml is free and you should install it on your computer. Sources and binaries for Caml for Windows, MacOS, Linux, etc are found on the Caml downloads page.

Running Caml locally

Caml is available on all department UNIX machines via the shell command ocaml.

We strongly recommend you run Caml from something besides the shell directly.

Emacs
The emacs editor is the "recommended" option. See information on running Caml inside Emacs to get going.
Eclipse OCaIDE
This is a new Eclipse plugin for Caml which works very well. See information on using OCaIE for more information. Note that the installation instructions are a bit out of date; you need to click on the "new site" button and add the listed site when you do the software update.
vim OMLet
If you like vim, it now has a caml mode, OMLet. The above two modes are significantly better, all this mode offers is automatic indentation and keyword highlighting.
Other options
Ledit and rlwrap add UNIX shell type features to the OCaml top loop.

Caml Information on the Web

Here is the key information
The Caml Homepage
The ultimate source for everything. The stuff below is all found off the homepage.
The OCaml manual (download your local copy from the links at the top).
Part I Chapter 1 is a brief but readable introduction to the core language. This will be our main reference. You may occasionally need to look at Part II, the reference manual, Part III for some commands, and Part IV for libraries (the core library docs are particularly useful for standard string, etc functions built into ocaml).
Here is additional supplementary information
Cocan - The OCaml Alliance Network
An OCaml user group with a webpage containing much good information.
Developing Applications with Objective Caml, by Emmanuel Chailloux, Pascal Manoury and Bruno Pagano.
This is a complete on-line book covering OCaml. It was translated from the French by an ad-hoc group of people and so is less than perfect writing.
Using, Understanding, and Unraveling The OCaml Language
A foundational look at OCaml -- if you want to really understand the deep internal concepts of OCaml, this is the source.
Introduction to Objective Caml by Jason Hickey
A more tutorial introduction to Caml than the previous.
Objective Caml Tutorial Wiki
A new tutorial for Caml written in Wiki style. Let me know if you like this, it is more words- and less examples-based than the tutorials above.
FAQ
for basic questions you may have. It is not very complete at this point so you may not find your answer here.
Programming Guidelines
Some standard coding conventions that are good to follow.