-
Notifications
You must be signed in to change notification settings - Fork 344
OCAML Teaching Resources
List of OCAML books [More books]
List of books on Awesome OCaml ripo
-
Developing Applications With Objective Caml. By Emmanuel Chailloux and Pascal Manoury and Bruno Pagano
-
Think OCaml: How to Think Like a (Functional) Computer Scientist, by Allen Downey and Nicholas Monje.
-
Unix System Programming in OCaml
-
Using, Understanding, and Unraveling OCaml
Using, Understanding, and Unraveling The OCaml Language by Didier Rémy
Programmation du système Unix en Objective Caml (in French)
A Concise Introduction to Objective Caml
[Introduction to Objective Caml, by Jason Hickey, 2008] (http://courses.cms.caltech.edu/cs134/cs134b/book.pdf)
Run and explore OCaml without installing it.
- A compiler from OCaml bytecode to Javascript
- Try OCaml
- Compile OCaml Online
- Codepad
- Run OCaml Code Online
To use the OCaml top level system effectively it is advisable to understand its inputs and outputs.
- [Formal description of OCaml top level system] (http://caml.inria.fr/pub/docs/manual-ocaml-400/manual023.html)
- [Explanation of the output of the OCaml top level system ---waiting for contribution]
- OcaIDE [1] , [2]
- OCaml Development Tools (OCD)
- EMACS with OCaml
- Setting Up Your OCaml Development Environment on OS X
- Installing Emacs with Tuareg Mode
- Emacs from scratch
- VIM with OCaml
- Ocaml 4.01 for MAC
- Cornell's Linux VM VirtualBox image (more info here)
- Princeton's Ubuntu VirtualBox VM (more info on the course's site )
- 99 Problems (solved) in OCaml
- Examples and Exercises for the book "More OCaml"
- From UMass's CS691F Programming languages course
- Try OCaml
-
From UMass's CS691F Programming languages course, at University of Massachusetts Amherst
-
A Concise Introduction to Objective Caml, at Villanova University
-
CSE 130: Programming Languages Course, at University of California San Diego. Click on [Lectures] (http://cseweb.ucsd.edu/classes/wi11/cse130/) and [Discussion Notes] (http://cseweb.ucsd.edu/classes/wi11/cse130/). Have a look at Lec 7 (a pp presentation by Zach) for an inspiring introduction into map and fold.
-
CS 3110 Fall 2013 :: Data Structures and Functional Programming, at Cornell University. The lecturing materials explain OCaml on the basis of the fundamental concepts of functional programming languages.
-
CIS 500: Software Foundations, at University of Pennsyvania. A Software Foundations course with strong emphasis on Types. The [OCaml Tutorial] (http://www.seas.upenn.edu/~cis500/cis500-f05/resources/seas-ocaml.html) includes a gentle introduction to the OCaml interactive top-level system and compilation in OCaml.
-
[ Tutorial: OCaml for scientific computation, at University of Southampton ] (http://www.southampton.ac.uk/~fangohr/software/ocamltutorial/). Lecture 2 (Functions) includes an in-depth discussion of the concept of functions in programming languages.
To feel at home with OCaml and (any other Functional Language) it helps to have some understanding of types, recursion and Lambda Calculus as these three concepts are at the heart Functional Programming. The following links point to some introductory references.
-
Types
-
Recursion: A good discussion of how recursion is implemented at compiler level is presented in Section 5-4 (Subprogram Sequence Control, pages 147-178) of Programming Languages: Design and Implementation, Terrance W. Pratt, Prentice Hall, Inc, 1975.
-
Lambda Calculus: A Tutorial Introduction to the Lambda Calculus, Raul Rojas, FU Berlin, WS-97/98, is a nine-page concise introduction to Lambda Calculus.
The content and length of this list is based on personal opinion.
- A Basis for a Mathematical Theory of Computation, John McCarthy. In P. Braffort and D. Hirschberg, editors, Computer Programming and Formal Systems, North-Holland, 1963.
This is a seminal article on the topic....
- Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs, John Backus. Communications of the ACM, Aug 1978, V.21, N.8.
This article explains the influence of the von Neumann architecture on early programming languages such as Fortran and Algol. The author discusses the impact of the assignment statement on the way computation is conceived in these languages.