%%% http://onlamp.com/pub/a/onlamp/2007/09/13/introduction-to-erlang.html?page=4 -module(user). -compile(export_all). create(MyName) -> Pid = spawn(fun() -> loop(MyName) end), room:add_user(Pid,MyName), Pid. loop(MyName) -> receive { accept, SenderName, {MyName, PersonalMessage } } -> io:format("~n~s receives a personal message from ~s: ~s ~n", [MyName, SenderName, PersonalMessage]), loop(MyName); { accept, _SenderName, {_, _PersonalMessage } } -> %% ignore ... loop(MyName); { accept, SenderName, Message } -> io:format("~n~s receives from ~s: ~s ~n", [MyName, SenderName, Message]), loop(MyName); { say, { Who, PersonalMessage }} -> io:format("~n~s says ~s to ~s~n",[MyName, PersonalMessage, Who]), room ! { self(), broadcast, MyName, { Who, PersonalMessage } }, loop(MyName); { say, Message } -> io:format("~n~s says ~s ~n",[MyName, Message]), room ! { self(), broadcast, MyName, Message }, loop(MyName) end.