Buy new:
$199.98$199.98
Arrives:
July 7 - 19
Ships from: Amazon Sold by: wisdom tree
Buy used: $13.57
Other Sellers on Amazon
+ $17.77 shipping
100% positive over last 12 months
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required. Learn more
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Real World OCaml: Functional programming for the masses 1st Edition
There is a newer edition of this item:
Purchase options and add-ons
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.
- Learn the foundations of the language, such as higher-order functions, algebraic data types, and modules
- Explore advanced features such as functors, first-class modules, and objects
- Leverage Core, a comprehensive general-purpose standard library for OCaml
- Design effective and reusable libraries, making the most of OCaml’s approach to abstraction and modularity
- Tackle practical programming problems from command-line parsing to asynchronous network programming
- Examine profiling and interactive debugging techniques with tools such as GNU gdb
- ISBN-10144932391X
- ISBN-13978-1449323912
- Edition1st
- PublisherO'Reilly Media
- Publication dateDecember 10, 2013
- LanguageEnglish
- Dimensions7 x 1.03 x 9.19 inches
- Print length510 pages
Frequently bought together

What do customers buy after viewing this item?
- Most purchased | Highest ratedin this set of products
Real World OCaml: Functional Programming for the MassesPaperback$18.34 shipping - This item:
Real World OCaml: Functional programming for the massesPaperback$17.77 shippingOnly 1 left in stock - order soon.
Editorial Reviews
Amazon.com Review
Real World OCaml: Functional programming for the masses
Camelus bactrianusWhat's the animal featured on the cover?
The animal on the cover of Real World OCaml is the Bactrian camel (Camelus bactrianus). The Bactrian camel, one of two species of camel, is native to Central Asia and hasbeen used domestically in the area for thousands of years. Even though there are overtwo million domesticated Bactrian camels, only about a thousand are considered wild. The Bactrian camel is a large animal at 6 to 7.5 feet in height and 7.4 to 11.5 feet inlength. An adult will typically weigh between 660 and 2,200 pounds. The Bactrian camelis distinctive for its two large humps on their back, hefty wooly coat, and dark browncolor. It is a herbivore that will eat all kinds of vegetation, though they have been knownto feed on dead animals.
Humans have domesticated the Bactrian camel for travel purposes because of its greatnatural resiliency. For example, the Bactrian camel can thrive in habitats of both extremecold and heat. It can also go without water for months and when water is available itcan consume up to 55 litres. The cover image is from Meyers Kleines Lexicon. The cover fonts are URW Typewriterand Guardian Sans. The text font is Adobe Minion Pro; the heading font is AdobeMyriad Condensed; and the code font is Dalton Maag’s Ubuntu Mono.
About the Author
Yaron Minsky heads the Technology group at Jane Street, a proprietary trading firm that is the largest industrial user of OCaml. He was responsible for introducing OCaml to the company and for managing the company's transition to using OCaml for all of its core infrastructure. Today, billions of dollars worth of securities transactions flow each day through those systems. Yaron obtained his PhD in Computer Science from Cornell University, where he studied distributed systems. Yaron has lectured, blogged and written about OCaml for years, with articles published in Communications of the ACM and the Journal of Functional Programming. He chairs the steering committee of the Commercial Users of Functional Programming, and is a member of the steering committee for the International Conference on Functional Programming.
Anil Madhavapeddy is a Senior Research Fellow at the University of Cambridge, based in the Systems Research Group. He was on the original team that developed the Xen hypervisor, and helped develop an industry-leading cloud management toolstack written entirely in OCaml. This XenServer product has been deployed on hundreds of thousands of physical hosts, and drives critical infrastructure for many Fortune 500 companies. Prior to obtaining his PhD in 2006 from the University of Cambridge, Anil had a diverse background in industry at Network Appliance, NASA and Internet Vision. In addition to professional and academic activities, he is an active member of the open-source development community with the OpenBSD operating system, is co-chair of the Commercial Uses of Functional Programmingworkshop, and serves on the boards of startup companies such as Ashima Arts where OCaml is extensively used.
Jason Hickey is a Software Engineer at Google Inc. in Mountain View, California. He is part of the team that designs and develops the global computing infrastructure used to support Google services, including the software systems for managing and scheduling massively distributed computing resources. Prior to joining Google, Jason was an Assistant Professor of Computer Science at Caltech, where his research was in reliable and fault-tolerant computing systems, including programming language design, formal methods, compilers, and new models of distributed computation. He obtained his PhD in Computer Science from Cornell University, where he studied programming languages. He is the author of the MetaPRL system, a logical framework for design and analysis of large software systems; OMake, an advanced build system for large software projects. He is the author of the textbook, An Introduction to Objective Caml (unpublished).
Product details
- Publisher : O'Reilly Media; 1st edition (December 10, 2013)
- Language : English
- Paperback : 510 pages
- ISBN-10 : 144932391X
- ISBN-13 : 978-1449323912
- Item Weight : 1.8 pounds
- Dimensions : 7 x 1.03 x 9.19 inches
- Best Sellers Rank: #978,016 in Books (See Top 100 in Books)
- #76 in Functional Software Programming
- #244 in Software Design Tools
- #1,289 in Software Development (Books)
- Customer Reviews:
About the authors

Discover more of the author’s books, see similar authors, read author blogs and more

Discover more of the author’s books, see similar authors, read author blogs and more

Discover more of the author’s books, see similar authors, read author blogs and more
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The text has O'reilly's quality and the code, even for a brand new work, is nearly flawless. I was frankly unfamiliar with Core, the largest OCaml library, which is why I have preferred the Haskell community, APIs, libraries and SDKs for a long time. No longer! I'm a functional programmer at heart, but to survive today you have to pick up Java, C#, Python, etc. Amazingly (to me, you probably knew this), OCaml has a very cool "imperative" engine in addition to its native functional design. The authors get right into opening Core first as if you were laying an SDK or IDE foundation with that library-- meaning you don't have to spend hours on the web before trying the hundreds of examples.
The "dual nature" or hybrid (imperative and functional) also means you can pick a seminal topic like recursion, for example, and build a loop function just like you would in Haskell. OR, in addition to native functional recursion, you can also use an imperative loop structure such as FOR or WHILE. I compared a FOR imperative with a Sudoku solving functional recursion loop I use all the time (# let rec find _first_stutter list= etc.), and the imperative beat the functional by almost 10 seconds for a very difficult trial. This is amazing not due to my poor functional skills, but due to the fact that my functional skills far outweigh imperative-- OC is a lot more fogiving than I imagined even in imperative!
Very honestly if a young student was interested in functional, I'd recommend Haskell due mostly to the online community and many fine and growing libraries. This awesome gem of a text changes my mind about that. In nearly 500 pages, the authors convincingly show real world example after example-- including MANY from standard coding interviews-- that prove OC is all grown up far beyond Domain Specific Language and academic applications. Big data is now trending heavy stats too, and OC makes R unnecessary due to its many native calc abilities. I've also heard that Amazon is using it in new Web x.o apps, and if I click on Amazon Pizza, and my doorbell rings 10 seconds later, OCaml will now be on my suspect list after reading this text.
The book is a true triple threat, as a reference, teaching guide/text, and especially as an autodidactic self tutorial even for those with basic beginning skills. OC even has its own parsing generators (akin to lex/yacc/bison etc.) that are smoking even if you don't write compilers, but deal a lot with strings and lists. I've read that big data folk all over the industry (including Facebook and Twitter) are using OC more and more, and this fine text taught me why.
I got both the print and Kindle versions and prefer the print. Kindle isn't as badly slaughtered in code examples (real, not just pseudo) as some e readers, but function arguments in this language are more like UNIX than C#, and spacing matters, so consider that if you're planning on using the kindle code as written. Of course O'reilly is renowned for web support and virtually all the examples are online without the onerous "don't ever use this" statements of a lot of publishers. Highly recommended as a second text after Whitington if you're new to functional, or a first text if you're at least intermediate at Haskell or an imperative, and are ready to explore a really cool new alternative.
JOB TIP: Since so many tasty companies are getting into this now, I'm thinking you might be able to distinguish yourself as a programming candidate if you learn this language, separating you from the herd! I'm not thinking many folk have figured this out yet, so go for it, and God love you! I'm too old to look through that lens, but hope it helps some of you young geniuses.
It was disappointing for several reasons:
- Advanced topics are very incompletely addressed (one page for OCaml functors!!) which leaves the reader wondering *why* you would need them in the first place, *how* you can use them (production examples would be nice). On the contrary, the authors will spend multiple pages (precious real-estate) to explain trivial stuff. I wish they weren't so loquacious on the easy stuff and reticent on the harder concepts.
- The examples are poorly chosen and almost never compile, they're simply obsolete.
- The authors skips on important subtleties which make the OCaml syntax more opaque than it really is (thinking about function labels). For example, "function labels" are just dropped on the reader from *nowhere*. You are just supposed to pick-up that piece of bizarre looking syntax. I'm sorry I can't parse that intuitively. Weirdly enough it took me 20 minutes to find a somewhat enlightening piece of documentation about it (still very incomplete). I realized the whole thing would take 30 seconds to explain when I seeked help on IRC (##ocaml on freenode). That's a real shame and a pretty big oversight.
- Overall, the prose is hard to follow. I can see that the authors know what they are talking about but they fail to convey it in a *concise* and clear manner.
Honestly, I hated reading that book. It was frustrating as hell. I so very much wanted to love it though. Maybe the 2nd edition will be better. I hope so. The authors are clearly knowledgeable and it was a strong first try. I just think they could do so much better. Kinda breaks my heart to write this review.
Go read the table of contents to get a glimpse of what it promises. Go read the book and it will deliver.
You go from "3 + 4" to the runtime system and the compiler in 500 pages and it makes sense the entire way. There is no filler content here, only clear text accompanied by excellent examples. The presentation is refreshing: here's a concept, here's an example, here's a practical problem with this code, here's how the language solves this problem, in practice there is this and that tradeoff. I wish more books were written like this.
While I can't think of a better way to learn OCaml and to explore its ecosystem, I suspect that the pace might be overwhelming for a total beginner. However, considering the value per page that I've gotten from this book, I welcome the tradeoff.
Buy it!
Maybe 2nd edition will improve.
Functional Programming is an interesting paradigm, and as internet will evolve in the future,
we'll for sure see languages like OCaml, Erlang or Haskell taking more relevance into the programming scene given the scalibility and power they have to offer.
Damian M
Top reviews from other countries
オライリー本は,どれもそうだと思うのですが,基本的な内容からかなり高度な内容までしっかり扱ってくれているので,とりあえずこれを読んでおけば日常のコーディングは問題ないと思います.
良いです.
L'expérience d'achat sur Amazon a été désastreuse en raison du manque de professionnalisme du transporteur "TNT France".
1/ Le chauffeur ne trouve pas ma maison et affiche "adresse incomplète" alors que j'ai déjà reçu par le passé à cette adresse plusieurs colis d'Amazon.
2/ Le site téléphonique du transporteur me fait attendre 16' avant de daigner répondre et se trouve être particulièrement désagréable alors que ce transporteur est en tort.
Si Amazon prétend a nouveau m'imposer ce transporteur je ne ferai plus d'effort et annulerai tout simplement mes commandes.
The approach of introducing concepts through examples didn't work well for me. It creates information overload unless you are already familiar with the language, its syntax and common functions. Answers to basic questions like 'what is a module' or 'what is a class' somehow get buried a heap of examples.
Even finding out how to run a 'hello world' program needed to be googled.
So at best, the book can be used as a second string to online tutorials such as those in 'ocaml.org'.
If you try to learn Ocaml from scratch using only this book, it will probably put you off for life!
Gut gemeint, aber nicht wirklich gelungen.

