[erlang-questions] eep: multiple patterns

Ulf Wiger (TN/EAB) <>
Thu May 29 08:44:12 CEST 2008


Richard A. O'Keefe skrev:
> 
> On 28 May 2008, at 7:41 pm, Ulf Wiger (TN/EAB) wrote:
>> I would just like to point out, for the record, that
>> this style of programming works well for gen_server-style
>> processes (and is, in fact, used in e.g. gen_server.erl),
>> but for selective receive, it is much harder, since
>> selective receive relies entirely on pattern matching,
>> and as such, is very difficult to modularize.
> 
> It's not completely clear to me what Ulf Wiger means by
> "this style of programming".  Using "this style of
> programming" to mean "the decision table pattern",
> it works perfectly fine for selective receive.

Apologies for being unclear.
It seemed to me as if the thread was approaching
the idea of

receive Msg ->
   case classify_msg(Msg) of
     Type -> Action
     ...
   end.

which is what I was referring to.
It is not surprising that the OTP behaviours gen_server
and gen_fsm both use FIFO message reception, and then
classify each message, sometimes using a callback.

Maybe it's another thread altogether, but, I was
under the impression that abstract patterns could
actually help this situation (too) somewhat.
My own impression is that this is a more pressing
problem to solve than making multiple patterns more
convenient. If the discussions are orthogonal, great,
but otherwise, I'd like to see this particular
problem considered as well.

BR,
Ulf W




More information about the erlang-questions mailing list