This reference manual describes the Erlang programming language. The focus is on the language itself, not the implementation. The language constructs are described in text and with examples rather than formally specified, with the intention to make the manual more readable. The manual is not intended as a tutorial.
Information about this implementation of Erlang can be found, for example, in System Principles (starting and stopping, boot scripts, code loading, error logging, creating target systems), Efficiency Guide (memory consumption, system limits) and ERTS User's Guide (crash dumps, drivers).
It is assumed that the reader has done some programming and is familiar with concepts such as data types and programming language syntax.
In the document, the following terminology is used:
If a feature has been added recently, in Erlang 5.0/OTP R7 or later, this is mentioned in the text.
For a complete list of BIFs, their arguments and return values,
refer to
The following are reserved words in Erlang:
after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when xor
In Erlang 4.8/OTP R5A the syntax of Erlang tokens was extended to allow the use of the full ISO-8859-1 (Latin-1) character set. This is noticeable in the following ways:
All the Latin-1 printable characters can be used and are shown without the escape backslash convention.
Atoms and variables can use all Latin-1 letters.
In Erlang/OTP R16 the syntax of Erlang tokens was extended to
handle Unicode. To begin with the support is limited to strings,
but Erlang/OTP R18 is expected to handle Unicode atoms as well.
More about the usage of Unicode in Erlang source files can be
found in