[erlang-questions] is there "return" in Erlang.

Kostis Sagonas <>
Mon Feb 28 19:01:53 CET 2011


Edmond Begumisa wrote:
> How about...
> 
> -define(CONF1, ..).
> -define(CONF2, ..).
> 
> judge() ->
>    judge({a, get_a()}).
> 
> judge({a, ?CONF1}) ->
>    do_something(?CONF1);
> judge({a, _}) ->
>    judge({b, get_b()});
> judge({b, ?CONF2}) ->
>    do_other_thing(?CONF2);
> judge({b, _}) ->
>    do_things().

Now, why on earth would you ever want to do that?  Wrap two terms in a 
tuple only to take them apart by pattern matching?

What's wrong with using an auxiliary judge function with two separate 
arguments instead?

Or even better why not use separate judge_a and judge_b functions that 
are both more efficient and make the programmer's intention clearer?

Sorry for the authoritative tone, but please think a bit more before you 
give "advice" to novices; they might actually take your advice literally 
and think that this is the proper way of writing programs in Erlang.

Kostis


More information about the erlang-questions mailing list