Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at ocaml.org.

Books on Caml

Books in English

[1]Yaron Minsky, Anil Madhavepeddy, and Jason Hickey. Real World OCaml. O'Reilly, 2013.
This fast-moving tutorial introduces you to OCaml, an industrial-strength programming language designed for expressiveness, safety, and speed. Through the book's many examples, you'll quickly learn how OCaml stands out as a tool for writing fast, succinct, and readable systems code. Real World OCaml takes you through the concepts of the language at a brisk pace, and then helps you explore the tools and techniques that make OCaml an effective and practical tool. In the book's third section, you'll delve deep into the details of the compiler toolchain and OCaml's simple and efficient runtime system.
[2]John Whitington. OCaml from the very beginning. Coherent Press 2013.
In OCaml from the Very Beginning John Whitington takes a no-prerequisites approach to teaching a modern general-purpose programming language. Each small, self-contained chapter introduces a new topic, building until the reader can write quite substantial programs. There are plenty of questions and, crucially, worked answers and hints. OCaml from the Very Beginning will appeal both to new programmers, and experienced programmers eager to explore functional languages such as OCaml. It is suitable both for formal use within an undergraduate or graduate curriculum, and for the interested amateur.
[3]Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. Developing Applications With Objective Caml. English translation of “Développement d'applications avec Objective Caml”.
A comprehensive (742 pages) book on OCaml, covering not only the core language, but also modules, objects and classes, threads and systems programming, and interoperability with C.
[4]Guy Cousineau and Michel Mauny. The Functional Approach to Programming. Cambridge University Press, Cambridge, 1998, ISBN 0-521-57183-9 (hardcover) or 0-521-57681-4 (paperback).
This book uses Caml as a tool to introduce several important programming concepts. It is divided in three parts. The first part is an introduction to Caml, which presents the language itself, but also introduces evaluation by rewriting, evaluation strategies and proofs of programs by induction. The second part is dedicated to the description of application programs which belong to various fields and might interest various types of readers or students. Finally, the third part is dedicated to implementation. It describes interpretation and compilation, with brief descriptions of memory management and type synthesis.
[5]Jon D. Harrop. OCaml for Scientists. Flying Frog Consultancy Ltd, 2005.
This book teaches OCaml programming with special emphasis on scientific applications. Many examples are given, covering everything from simple numerical analysis to sophisticated real-time 3D visualisation using OpenGL. This book contains over 800 color syntax-highlighted source code examples and dozens of diagrams that elucidate the power of functional programming to explain how lightning-fast and yet remarkably-simple programs can be constructed in the OCaml programming language.

Books in French

Caml programming

[6]Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. Développement d'applications avec Objective Caml. Éditions O'Reilly, Paris, 2000, ISBN 2-84177-121-0.
A comprehensive (742 pages) book on OCaml, covering not only the core language, but also modules, objects and classes, threads and systems programming, and interoperability with C.
[7]Xavier Leroy and Pierre Weis. Manuel de référence du langage Caml. InterEditions, Paris, 1993, ISBN 2-7296-0492-8 (out of print) .
Written by two of the implementors of the Caml Light compiler, this comprehensive book describes all constructs of the programming language and provides a complete documentation for the Caml Light system.

Teaching programming with Caml

[8]Sylvain Conchon and Jean-Christophe Filliâtre. Apprendre à programmer avec OCaml. Algorithmes et structures de données. Éditions Eyrolles, Sept 2014. ISBN 978-2-212-13678-4 .
L'apprentissage de la programmation est difficile. Bien programmer nécessite des connaissances algorithmiques, de l'imagination, de l'anticipation, la maîtrise d'un langage de programmation, et surtout beaucoup d'expérience car les difficultés se cachent souvent dans les détails. Cet ouvrage synthétise nos expériences à la fois de programmeurs et d'enseignants en programmation. N'oubliez pas que le style de programmation est essentiel. Dans un langage donné, le même algorithme peut être écrit de multiples façons, et certaines peuvent être à la fois élégantes et efficaces. C'est cela que le programmeur doit rechercher à tout prix. C'est la raison pour laquelle nous avons choisi d'utiliser un langage de programmation particulier plutôt que du pseudo-code. Notre choix s'est ainsi porté sur le langage OCaml. Cet ouvrage est découpé en trois parties. La première est une initiation au langage OCaml destinée aux débutants. Il peut s'agir autant de débutants en programmation, que de programmeurs plus expérimentés qui ne connaissent pas OCaml. À travers de petits programmes, le lecteur découvre les concepts fondamentaux de la programmation et du langage OCaml. Les deuxième et troisième parties sont dédiées à la présentation de concepts algorithmiques fondamentaux pour permettre au lecteur d'écrire ses propres programmes, de manière efficace et structurée. Les concepts algorithmiques sont présentés directement dans la syntaxe du langage OCaml et tous les programmes de cet ouvrage peuvent être immédiatement réutilisés.
[9]Pierre Weis and Xavier Leroy. Le langage Caml. Second edition: Dunod, Paris, 1999, ISBN 2-10-004383-8. First edition: InterEditions, Paris, 1993. Out of print .
This book is a comprehensive introduction to programming in Caml. Usable as a programming course, it introduces progressively the language features and shows them at work on the fundamental programming problems. In addition to many introductory code samples, this book details the design and implementation of six complete, realistic programs in reputedly difficult application areas: compilation, type inference, automata, etc.
[10]Guy Cousineau and Michel Mauny. Approche fonctionnelle de la programmation. Ediscience (Collection Informatique), Paris, 1995, ISBN 2-84074-114-8.
This book uses Caml as a tool to introduce several important programming concepts. It is divided in three parts. The first part is an introduction to Caml, which presents the language itself, but also introduces evaluation by rewriting, evaluation strategies and proofs of programs by induction. The second part is dedicated to the description of application programs which belong to various fields and might interest various types of readers or students. Finally, the third part is dedicated to implementation. It describes interpretation then compilation, with brief descriptions of memory management and type synthesis.
[11]Bruno Petazzoni. Seize problèmes d'informatique. Éditions Springer, Paris, 2001, ISBN 3-540-67387-3.
This book offers sixteen problems in computer science, with detailed answers to all questions and complete solutions to algorithmic problems given as Caml programs. It deals mainly with automata, finite or infinite words, formal language theory, and some classical algorithms such as bin-packing. It is intended for students who attend the optional computer science curriculum of the “classes préparatoires MPSI/MP”. It should also be useful to all teachers and computer science students up to a masters degree.
[12]Michel Quercia. Nouveaux exercices d'algorithmique. Éditions Vuibert, Paris, 2000, ISBN 2-7117-8990 X.
This book presents 103 exercises and 5 problems about algorithms, for masters students. It attempts to address both practical and theoretical questions. Programs are written in Caml and expressed in a purely functional style. Problem areas include programming methodology, lists, formula evaluation, Boolean logic, algorithmic complexity, trees, languages, and automata.
[13]Denis Monasse. Option informatique MPSI. Éditions Vuibert (Enseignement supérieur & Informatique), Paris, 1996, ISBN 2-7117-8831-8.
This is a computer science course for the first year of “classes préparatoires”. The course begins with an introductory lesson on algorithms and a description of the Caml language. Then, several fundamental algorithms are described and illustrated using Caml programs. The book adopts a mathematical approach: descriptions of mathematical objects are related to data structures in the programming language. This book is suitable for students with some mathematical background, and for everyone who wants to learn the bases of computer science.
[14]Denis Monasse. Option informatique MP/MP*. Éditions Vuibert (Enseignement supérieur & Informatique), Paris 1997, ISBN 2-7117-8839-3.
This books is a follow-up to the previous one and is intended for second year students in “classes préparatoires”. It deals with trees, algebraic expressions, automata and languages, and Caml streams. The book contains more than 200 Caml programs.
[15]Luc Albert. Cours et exercices d'informatique. Thomson Publishing International, Paris, 1997, ISBN 2-84180-106-3.
This book was written by teachers at university and in “classes préparatoires”. It is intended for “classes préparatoires” students who study computer science and for students engaged in a computer science cursus up to the masters level. It includes a tutorial of the Caml language, a course on algorithms, data structures, automata theory, and formal logic, as well as 135 exercises with solutions.
[16]Thérèse Accart Hardin and Véronique Donzeau-Gouge Viguié. Concepts et outils de programmation. InterEditions, ISBN 2 7296 0419 7.
This book presents a new approach to teaching programming concepts to beginners, based on language semantics. A simplified semantic model is used to describe in a precise manner the features found in most programming languages. This model is powerful enough to explain typechecking, polymorphism, evaluation, side-effects, modularity, exceptions. Yet, it is simple enough to be manipulated by hand, so that students can actually use it to compute. The book begins with a functional approach, based on Caml, and continues with a presentation of an imperative language, namely Ada. It also provides numerous exercises with solutions.
[17]Jacques Rouablé. Programmation en Caml. Eyrolles, Paris 1997, ISBN 2-212-08944-9.
This book is intended for beginners, who will learn basic programming notions. The first part of the book is a programming course that initiates the reader to the Caml language. Important notions are presented from a practical point of view, and the implementation of some of these is analyzed and sketched. The second part, the “Caml workshop”, is a practical application of these notions to other domains connected to computer science, logic, automata and grammars.
[18]Catherine Dubois and Valérie Ménissier Morain. Apprentissage de la programmation avec OCaml. Hermès Sciences, Paris 2004, ISBN 2-7462-0819-9.
Programming is a discipline by which the strengths of computers can be harnessed: large amounts of reliable memory, the ability to execute repetitive tasks relentlessly, and a high computation speed. In order to write correct programs that fulfill their specified needs, it is necessary to understand the precise semantics of the programming language. This book is targeted towards beginner programmers and provides teaching material for all programmers wishing to learn the functional programming style. The programming features introduced in this book are available in all dialects of the ML language, notably Caml-Light, OCaml and Standard ML. The concepts presented therein and illustrated in OCaml easily transpose to other programming languages.
[19]Philippe Narbel. Programmation fonctionnelle, générique et objet: une introduction avec le langage OCaml. Vuibert, Paris 2005, ISBN 2-7117-4843-X.
[20]Pascal Manoury. Programmation de droite à gauche et vice-versa. Éditions Paracamplus, Paris, 2011, ISBN 978-2-916466-05-7.

Books in Chinese

[21]Gang Chen. OCaml语言编程基础教程 (an introduction to OCaml language programming). 人民邮电出版社 (Posts & Telecom Press), 2018, ISBN 9787115471215.

Books in German

[22]Juergen Wolff von Gudenberg. Algorithmen, Datenstrukturen, Funktionale Programmierung. Eine praktische Einführung mit Caml Light. Addison-Wesley, Bonn, 1996.
This book gives an introduction to programming where algorithms as well as data structures are considered functionally. It is intended as an accompanying book for basic courses in computer science, but it is also suitable for self-studies. In the first part, algorithms are described in a concise and precise manner using Caml Light. The second part provides a tutorial introduction into the language Caml Light and in its last chapter a comprehensive description of the language kernel.

Books in Italian

[23]Carla Limongelli and Marta Cialdea. Introduzione alla programmazione funzionale. Societa' Editrice Esculapio, 2002, ISBN 88-7488-031-6.