Erlang is the result of a project at Ericsson's Computer Science Laboratory to improve the programming of telecommunication applications. A critical requirement was supporting the characteristics of such applications, that include: massive concurrency, fault-tolerance, isolation, dynamic code upgrading at runtime, transactions.
Throughout the whole of Erlang's history the development process has been extremely pragmatic. The characteristics and properties of the types of systems in which Ericsson was interested drove Erlang's development.
These properties were considered to be so fundamental that it was decided to build support for them into the language itself, rather than in libraries. Because of the pragmatic development process, rather than a result of prior planning, Erlang "became" a functional language - since the features of functional languages fitted well with the properties of the systems being developed.
The Erlang Handbook is a summary of the language features and the runtime system. It is aimed at people with some programming experience, serving as a quick introduction to the Erlang domain.
This open book is licensed under a Creative Commons License (CC BY-SA). You can download Erlang Handbook ebook for free in PDF format (0.6 MB).
Table of Contents
Background, or Why Erlang is that it is
Structure of an Erlang program
Data types (terms)
Ports and Port Drivers
Further Reading and Resources