This document provides an introduction to functional programming with Erlang. It discusses Erlang's history and origins at Ericsson to build robust, fault-tolerant systems. Key properties of Erlang are highlighted like concurrency, hot code loading, distribution, and soft real-time capabilities. Basic concepts in Erlang like functions, data types, pattern matching, modules, and recursion are explained. Examples of Erlang use in companies and products are also given.