Faré fahree@gmail.com writes:
What should happen when you receive something that doesn't match any pattern? I don't remember what happens in Erlang: either the message is dropped or it raises an error, I suppose (gotta read the documentation). In Lisp, it could be configurable. See match vs ematch just like we have case vs ecase.
unmatched messages are buffered. I've attached a small test module demonstrating this.
Goodbyte, Gerd.
-module(f). -export([r/0]).
l() -> receive {a,A} -> io:format('a: ~p~n', [A]) end, receive {b,B} -> io:format('b: ~p~n', [B]) end, receive R -> io:format('r: ~p~n', [R]) end, l().
r() -> Pid = spawn(fun l/0), Pid ! {b, bla}, Pid ! foo, Pid ! {a, blubb}.
Eshell V5.4.6 (abort with ^G) 1> c("/tmp/f", [{outdir, "/tmp/"}]). {ok,f} 2> f:r(). a: blubb {a,blubb}b: bla
r: foo 3>