Newbies What Next ? News Forums Calendar


News Sections
General News (3987/0)
Reviews (637/0)
Press Releases (465/0)
Distributions (197/0)
Software (911/0)
Hardware (537/0)
Security (192/0)
Tutorials (356/0)
Off Topic (181/0)

User Functions


Don't have an account yet? Sign up as a New User

There are no upcoming events

5 Best Free Erlang Books

5 Best Free Erlang Books

Erlang is a general-purpose concurrent functional programming language and runtime environment developed by Ericsson, a Swedish multinational provider of communications technology and services. Erlang is dynamically typed and has a pattern matching syntax. The language solves difficult problems inherent in parallel, concurrent environments. Erlang uses sets of parallel processes, not a single sequential process as found in most programming languages.

Erlang was created at the Ellemtel Telecommunication Systems Laboratories for telecommunication systems. Besides telecommunication systems and applications and other large industrial real-time systems, Erlang is particularly suitable for servers for internet applications, and networked database applications. The language is released under an open source license, the Erlang Public License. This is a modified Mozilla Public License.

The focus of this article is to select the finest Erlang books which are available to read for free. Some of the books featured here are released under an open source license. All of the texts have a lot to offer for a budding Erlang programmer. So get reading and learning.

1. ╔tudes for Erlang

╔tudes for Erlang
Author J. David Eisenberg
Format HTML (PDF, Mobi and EPUB can be purchased)
Pages -

╔tudes for Erlang provides descriptions of programs that you can write in Erlang. The programs are typically short, and each one has been designed to provide practice material for a particular Erlang programming concept. These programs have not been designed to be of considerable difficulty, though they may ask the reader to stretch a bit beyond the immediate material and examples that are found in the book Introducing Erlang.

Example programs cover:

  • Functions and Modules
  • Atoms, Tuples and Pattern Matching
  • Logic and Recursion
  • Strings
  • Lists
  • Higher Order Functions and List Comprehensions
  • Processes
  • Handling Errors
  • Storing Structured Data
  • Getting Started with OTP
  • Solutions

2. Erlang Handbook

Erlang Handbook
Author Bjarne Dńcker, Robert Virding
Format PDF
Pages 46

The Erlang Handbook is a concise 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.

The book focuses on the following areas:

  • Structure of an Erlang program - offers a brief introduction to module syntax, module attributes, comments, character set, and reserved words
  • Data types - unary data types, compound data types, escape sequences, and type conversions
  • Pattern matching - variables and pattern matching
  • Functions - function definition, function calls, expressions including Boolean expressions, compound expressions, guard sequences, tail recursion, funs, and built-in functions
  • Processes - examines process creation, registered processes, process communication, process termination, monitors, process priorities, and process dictionary
  • Error handling - deals with error handling within a process. Such errors are known as exceptions
  • Distributed Erlang - looks at nodes, node connections, hidden nodes, cookies, distribution built-in functions, distribution command line flags, and distribution modules
  • Ports and Port Drivers
  • Code loading
  • Macros

This text is made available under a Creative Commons Attribution-ShareAlike 3.0 License. The handbook is typeset using LaTeX.

3. Concurrent Programming in Erlang (2nd Edition)

Concurrent Programming in Erlang
Author Joe Armstrong, Robert Virding, Claes Wikstr÷m, Mike Williams
Format PDF (Download)
Pages 205

Concurrent Programming in Erlang employs a tutorial approach to guide the reader through the programming of real-time and distributed fault-tolerant systems.

Written by experts in the field, this practically-oriented book shows how the use of Erlang results in modular systems which are easy to specify, design and test.

This book is intended for people who are interested in real-time control systems and have some previous programming experience. Previous knowledge of functional or logic languages is not necessary. The material in the book is loosely based on an Erlang course held at Ericsson and its subsidiary companies worldwide and at several Swedish universities.

The book is divided into two main parts. The first part, 'Programming', introduces the Erlang language and some of the most commonly used paradigms when programming in Erlang. The second part, 'Applications', has a number of self-contained chapters containing case studies of typical Erlang applications.

Chapters cover:

  • An Erlang Tutorial - the major ideas in the language are introduced through a series of examples covering sequential programming, data types, pattern matching, built-in functions, and concurrency
  • Sequential Programming - introduces the module system
  • Programming with Lists - examples of sequential programming with list, introducing basic list techniques and several modules
  • Programming with Tuples - examples of sequential programming with tuples, introducing basic tuple techniques and several modules. Encrypting PIN codes, dictionaries, unbalanced & balanced binary trees are covered
  • Concurrent Programming - introduces the primitives necessary to create a parallel process and for message passing between processes, and also introduces the idea of a registered process whichallows us to associate a name with a process. The basic ideas behind the client{server model are explained
  • Distributed Programming - a general introduction to distributed programming describing the language primitives which are needed to write distributed Erlang programs and explain how sets of Erlang process can be arranged to run on a network of Erlang nodes. The chapter ends with a banking example
  • Error Handling - explains the error handling mechanisms available in Erlang including catch and throw, process termination, linked processes, run-time failure, and more
  • Programming Robust Applications - shows how the error handling primitives introduced in the previous chapter can be used to build robust and fault-tolerant systems
  • Miscellaneous items - a collection of ideas and programming techniques not introduced elsewhere in the book including a discussion of the last call optimisation, details of how to change Erlang code in a running system, and how to interface Erlang to programs written in other languages
  • Databases - shows how to program simple, multi-level, and external databases in Erlang
  • Distributed Programming Techniques - shows the reader how several well-known techniques used for writing distributed programs, such as the remote proceedure call, broadcasting, promises, etc. can be programmed in distributed Erlang
  • Distributed Data - examines the problem of distributed data
  • Operating Systems - a discussion of the Erlang operating system including code management, the Input/Output system, and the standard shell
  • Real-Time Control - address two real-time control problems: a lift control system, and a satellite control system
  • Telephony - a complete example of a real-time control program for a small local telephone exchange
  • An ASN.1 Compiler - a short introduction to ASN.1 and presents a cross-compiler from ASN.1 to Erlang
  • Graphics - shows how to build a graphic user interface to an Erlang application including a pocket calculator, a prompter, and a TV simulation
  • Object-Oriented Programming - discusses some of the major properties of object-oriented programming languages and how these can be programmed in Erlang

4. Learn you some Erlang for Great Good!: A Beginner's Guide

Learn you some Erlang for Great Good!: A Beginner's Guide
Author Fred Hebert
Format HTML
Pages 624

Erlang maestro Fred Hebert introduces the reader to the basics: learn about Erlang's unorthodox syntax, its data structures, its type system (or lack thereof!), and basic functional programming techniques. Once you've wrapped your head around the simple stuff, you'll tackle the real meat-and-potatoes of the language: concurrency, distributed computing, hot code loading, and all the other dark magic that makes Erlang such a hot topic among today's savvy developers.

  • Testing your applications with EUnit and Common Test
  • Building and releasing your applications with the OTP framework
  • Passing messages, raising errors, and starting/stopping processes over many nodes
  • Storing and retrieving data using Mnesia and ETS
  • Network programming with TCP, UDP, and the inet module
  • The simple joys and potential pitfalls of writing distributed, concurrent applications

5. Making reliable distributed systems in the presence of software errors

Making reliable distributed systems in the presence of software errors
Author Joe Armstrong
Format PDF
Pages 295

Making reliable distributed systems in the presence of software errors identifies the essential characteristics which are needed to build fault-tolerant software systems. Some of these characteristics are satisfied by Erlang, others in library modules written in Erlang. The language and libraries provide a means for building reliable software systems.

This book covers the following areas:

  • The Architectural Model - presents an architectural model for building fault-tolerant sys-tems
  • Erlang - describes a reasonably large sub-set of the Erlang programming language, and motivate some of the design decisions made in Erlang.
    • Data structures
    • Variables
    • Terms and patterns
    • Guards
    • Extended pattern matching
    • Functions
    • Function bodies
    • Tail recursion
    • Special forms
    • Error handling
    • Distributed programming
    • Ports
    • Dynamic code change
    • A type notation
  • Programming Techniques - provides some examples of Erlang programming techniques including a technique for maintaining the illusion that "everything is an Erlang process," and give examples of how to write code which handles errors
  • Programming Fault-tolerant Systems - how to program systems which behave in a reasonable mannereven in the presence of errors
  • Building an Application - links the general principles of programming a fault-tolerant system to a number of specific programming patterns developed for programming fault-tolerant systems
  • OTP - describes the OTP system. OTP stands for "Open Telecoms Platform"
  • Case Studies - analyses a number of large commercially successful products that make use of OTP. One of the projects studied in this chapter is the Ericsson AXD301, a high-performance highly-reliable ATM switch
  • APIs and Protocols - concerned with APIs and protocols

Bookmark and Share

Last Updated Saturday, May 10 2014 @ 11:34 AM EDT

We have written a range of guides highlighting excellent free books for popular programming languages. Check out the following guides: C, C++, C#, Java, JavaScript, CoffeeScript, HTML, Python, Ruby, Perl, Haskell, PHP, Lisp, R, Prolog, Scala, Scheme, Forth, SQL, Node.js (new), Fortran (new), Erlang (new), Pascal (new), and Ada (new).

Group Tests
100 Essential Apps
All Group Tests

Top Free Software
5 Office Suites
3 Lean Desktops
7 Document Processors
4 Distraction Free Tools
9 Project Management
4 Business Solutions
9 Groupware Apps
14 File Managers
10 Databases
21 Backup Tools
21 Productivity Tools
5 Note Taking Apps
9 Terminal Emulators
21 Financial Tools
5 Bitcoin Clients
21 Text Editors
21 Video Emulators
21 Home Emulators
42 Graphics Apps
6 CAD Apps
42 Scientific Apps
10 Web Browsers
42 Email Apps
12 Instant Messaging
10 IRC Clients
7 Twitter Clients
12 News Aggregators
11 VoIP Apps
42 Best Games
9 Steam Games
42 Audio Apps
5 Music Streaming
42 Video Apps
5 YouTube Tools
80 Security Apps
9 System Monitoring
8 Geometry Apps
Free Console Apps
14 Multimedia
4 Audio Grabbers
9 Internet Apps
3 HTTP Clients
5 File Managers
8 Compilers
9 IDEs
9 Debuggers
7 Revision Control Apps
6 Doc Generators
Free Web Software
21 Web CMS
14 Wiki Engines
8 Blog Apps
6 eCommerce Apps
5 Human Resource Apps
10 ERP
10 CRM
6 Data Warehouse Apps
8 Business Intelligence
6 Point-of-Sale

Other Articles
Migrating from Windows
Back up your data
20 Free Linux Books
24 Beginner Books
12 Shell Scripting Books

Older Stories
Sunday 04/12
  • First Peek at XBian on the Raspberry Pi 2 (0)

  • Saturday 04/04
  • First Look at OSMC RC on the Raspberry Pi 2 (0)

  • Sunday 03/29
  • First Steps with OpenELEC on the Raspberry Pi 2 (0)
  • Ubuntu MATE 15.04 for Raspberry Pi 2 (0)

  • Monday 03/16
  • MIPS Creator CI20 v Raspberry Pi 2 (0)
  • Raspberry Pi 2: Raspbian (ARMv6) v Linaro (ARMv7) (0)

  • Friday 03/06
  • Raspberry Pi 2 review (0)

  • Sunday 02/22
  • Chess in a Few Bytes (0)
  • Learn the Art of Computer Programming With These Great Free Beginner Books (2)
  • CD Audio Grabbers (0)

  • Vote

    What Linux distribution do you run on your main computer?

    841 votes | 3 comments

    Built with GeekLog and phpBB
    Comments to the webmaster are welcome
    Copyright 2009 - All rights reserved