Abscissa Press recently published The Objective Caml Programming Language by Tim Rentsch and were kind enough to send us a complimentary copy of the book for review even though we are the creators of the related book OCaml for Scientists.
The Objective Caml Programming Language is a 264-page paperback that covers many features of the OCaml programming language including expressions, variables, functions, pattern matching, tuples, lists, polymorphism, unions, references, loops, records, arrays, strings, exceptions, IO, compilation, debugging, modules, functors, objects, inheritance, polymorphic classes and touches upon some other topics including labeled and optional arguments and laziness.
The core content is derived largely from Jason Hickey's academic course on OCaml at Caltech but also includes 87 pages describing OCaml's object system. The book has been carefully typeset and is a pleasure to read. The style of writing is purely theoretical and presents technical content with many examples, academic exercises and it is mostly accurate. Consequently, this book is ideal for anyone who already has a strong background in computer science and wants to learn the OCaml language.
However, this is not a pragmatic book and no attention is given to programming style, libraries, tools, optimization or other issues that are very important for anyone who wants to use OCaml for general purpose programming.