Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

An interactive tutorial to begin learning with OCaml. Try OCaml in your browser now !

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 cmicomp
Octocat-spinner-32 js_of_ocaml-lessons
Octocat-spinner-32 ocaml-lessons
Octocat-spinner-32 ocaml-num
Octocat-spinner-32 ocp-jslib @ 5251af9
Octocat-spinner-32 toplevel
Octocat-spinner-32 toplevellib
Octocat-spinner-32 try-js_of_ocaml
Octocat-spinner-32 try-ocaml
Octocat-spinner-32 tutorial
Octocat-spinner-32 .depend
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 Makefile
Octocat-spinner-32 Makefile.tryocaml
Octocat-spinner-32 configure
Octocat-spinner-32 tryocaml.ocp


TryOCaml is the easiest way to learn how to code in OCaml language. A funny way to learn the language. It is available here:

TryOCaml is based on ( built with js_of_ocaml (see


Try it

$ opam remote add devel
$ opam install js_of_ocaml.100
$ git submodule init
$ git submodule update
$ ./configure
$ make

Then, with your favorite browser launch tryocaml/index.html:

$ chromium-browser tryocaml/index.html

Contribute lessons/steps/fixes

Lessons are in the "lessons/" top directory.

Each lesson is a sub-directory "lessonN", where N is the lesson number, and contains a file "lesson.html", with a title in a <h3> tag on the first line, and a set of steps. Each step is a sub-directory "stepM" of "lessons/lessonN", where M is the step number in the lesson.

Each step is composed of two files:

  • "step.html": the text of the step. The first line MUST contain the step title, in a <h3> tag. Code that should be copied in the terminal should be in <code> tags.
  • "": the function testing if the step has been completed. It takes the user input (a string) and the compiler output (a string) as arguments, and returns a boolean, true if the user has succeeded, false otherwise. "" can directly use functions defined in "lessons/" (that is included, so NEVER use "open Goodies" or "Goodies.something), in particular the "find_in" function.

To recompile when you have done a modification:

$ make update-lessons

Failure to comply to the lesson/step specification will make the tryocaml/tutorial/make_lessons command fail.

If you want to debug at some point, you can type debug true in the terminal to see what the input and output strings are.

Once everything works, send a "pull request" via Github, or send us a patch. You can also come on #ocamlpro IRC channel to discuss with us.



GNU General Public License

Something went wrong with that request. Please try again.