Download Real World OCaml: Functional programming for the masses by Yaron Minsky, Anil Madhavapeddy, Jason Hickey PDF

By Yaron Minsky, Anil Madhavapeddy, Jason Hickey

This fast-moving instructional introduces you to OCaml, an industrial-strength programming language designed for expressiveness, defense, and pace. in the course of the book’s many examples, you’ll quick find out how OCaml sticks out as a device for writing speedy, succinct, and readable platforms code.

Real global OCaml takes you thru the techniques of the language at a brisk velocity, after which is helping you discover the instruments and strategies that make OCaml a good and functional software. within the book’s 3rd part, you’ll delve deep into the main points of the compiler toolchain and OCaml’s easy and effective runtime system.

study the principles of the language, corresponding to higher-order services, algebraic info forms, and modules
discover complex gains corresponding to functors, top notch modules, and objects
Leverage center, a complete general-purpose regular library for OCaml
layout potent and reusable libraries, taking advantage of OCaml’s method of abstraction and modularity
take on sensible programming difficulties from command-line parsing to asynchronous community programming
research profiling and interactive debugging options with instruments corresponding to GNU gdb

http://shop.oreilly.com/product/0636920024743.do#

Show description

Read Online or Download Real World OCaml: Functional programming for the masses PDF

Best computing books

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

*Would you love to take advantage of a constant visible notation for drawing integration recommendations? glance contained in the entrance hide. *Do you need to harness the ability of asynchronous platforms with out getting stuck within the pitfalls? See "Thinking Asynchronously" within the advent. *Do you need to recognize which form of program integration is better to your reasons?

Training Guide: Administering Windows Server 2012

Designed to aid firm directors enhance real-world, job-role-specific skills—this education advisor specializes in deploying and dealing with home windows Server 2012. construct hands-on services via a chain of classes, routines, and prompt practices—and aid maximize your functionality at the job.

This Microsoft education Guide:
* offers in-depth, hands-on education you are taking at your personal velocity
* makes a speciality of job-role-specific services for deploying and handling home windows Server 2012
* Creates a beginning of abilities which, in addition to on-the-job event, may be measured via Microsoft Certification checks equivalent to 70-411

Sharpen your talents. raise your expertise.
* install and replace home windows Server 2012
* deal with account guidelines and repair money owed
* Configure identify answer
* Administer energetic listing
* deal with team coverage software and infrastructure
* paintings with crew coverage settings and personal tastes
* Administer community regulations
* Configure the community to permit distant entry
* deal with dossier providers
* computer screen and audit home windows Server 2012

Computing and Combinatorics: 5th Annual International Conference, COCOON’99 Tokyo, Japan, July 26–28, 1999 Proceedings

The abstracts and papers during this quantity have been offered on the 5th Annual foreign Computing and Combinatorics convention (COCOON ’99), which used to be held in Tokyo, Japan from July 26 to twenty-eight, 1999. the subjects disguise such a lot points of theoretical laptop technology and combinatorics concerning computing.

Extra info for Real World OCaml: Functional programming for the masses

Example text

Thus, the following declarations are all equivalent. Note that [] is used to represent the empty list and that :: is right-associative: OCaml utop (part 29) 12 # # # - [1; 2; 3];; : int list = [1; 2; 3] 1 :: (2 :: (3 :: []));; : int list = [1; 2; 3] 1 :: 2 :: 3 :: [];; : int list = [1; 2; 3] | Chapter 1: A Guided Tour The :: operator can only be used for adding one element to the front of the list, with the list terminating at [], the empty list. There’s also a list concatenation operator, @, which can concatenate two lists: OCaml utop (part 30) # [1;2;3] @ [4;5;6];; - : int list = [1; 2; 3; 4; 5; 6] It’s important to remember that, unlike ::, this is not a constant-time operation.

Functional code is the default in OCaml, with variable bindings and most data structures being immutable. But OCaml also has excellent support for imperative programming, including mutable data structures like arrays and hash tables, and control-flow con‐ structs like for and while loops. Arrays Perhaps the simplest mutable data structure in OCaml is the array. Arrays in OCaml are very similar to arrays in other languages like C: indexing starts at 0, and accessing or modifying an array element is a constant-time operation.

Options Another common data structure in OCaml is the option. An option is used to express that a value might or might not be present. For example: OCaml utop (part 37) # let divide x y = if y = 0 then None else Some (x/y) ;; val divide : int -> int -> int option = The function divide either returns None if the divisor is zero, or Some of the result of the division otherwise. Some and None are constructors that let you build optional values, just as :: and [] let you build lists. You can think of an option as a specialized list that can only have zero or one elements.

Download PDF sample

Rated 4.57 of 5 – based on 21 votes