Much is being said about the excellent capabilities of Erlang to write distributed fault-tolerant programs, but little has been said about how easy and fun it is to write servers (those programs at the other end of the line) with it. And by easy I don’t just mean that you can put up a web server in two lines of code and hope it’ll work, I mean it’ll be easy to built robust servers.
One example of this is ejabberd, a free Jabber server.
One of the Erlang features that let us write servers is its binary pattern matching. But to understand binary pattern matching first you have to understand pattern matching.
Let’s start with a classic of functional programming: factorial. This is factorial in Erlang
fac(N) -> if N == 0 -> 1; true -> N * fac(N - 1) end.