ABSTRACT

Erlang was designed for building fault-tolerant, long-lived applications that handle a large number of concurrent activities, meet real-time constraints, scale across large distributed networks, and are able to be modified while running. Like Java, Erlang arrived with its own virtual machine. Erlang data values, or terms are: atoms, integers, floats, binaries, references, pids, ports, funs, lists, tuples, and maps. The chapter explores binaries, references, pids and ports. Like Clojure and Elm, Erlang emphasizes functional programming over object-oriented programming. Erlang is not a pure functional language; it can generate side effects through, among other things, throwing exceptions. Unlike assignment statements common in many languages, Erlang variables become bound through pattern matching. Once bound, they cannot be rebound. Erlang was originally created to solve problems in telephony, so it was designed from the start for concurrency. Telephony applications demand massive scale and high reliability.