[erlang-questions] pattern match test operator
Vlad Dumitrescu
vladdu55@REDACTED
Mon Nov 19 22:15:18 CET 2007
Hi,
On Nov 16, 2007 10:44 PM, Andras Georgy Bekes <bekesa@REDACTED> wrote:
> case Expr1 of
> PATTERN1 ->
> case Expr_with_side_effects of
>...
Yes, when there are side-effects, then my suggestion doesn't work.
But I wonder if it's a ggod idea to put side effects in a match... I
prefer to put them in well lit and guarded places, so that they can't
sneak on my when I'm looking somewhere else :-)
> I've seen a code fragment (in AXD301) several weeks ago, so I can't
> remember correctly, but: The function was supposed to select the first
> case if one argument looked like "R7A..." or "R12C...".
> This could be done with my construct:
>
> function(X) when ?MATCH("R7A"++_,X) or ?MATCH("R12C"++_,X) ->
> complicated_function_body().
>
> All the solutions we've found were ugly in some way.
function("R7A"++_) ->
function_aux();
function("R12C"++_) ->
function_aux().
function_aux() ->
complicated_function_body().
is not really ugly, just a little more verbose. I see your point, I
guess that it's a matter of being used with a style and not being as
sensitive to such ugliness.
best regards,
Vlad
More information about the erlang-questions
mailing list