programming erlang 2nd edition exercises