Programming Erlang. Chapter 2.