[erlang-questions] matching binary against a file
Thomas Lindgren
thomasl_erlang@REDACTED
Sat Jun 23 13:30:18 CEST 2007
--- Jeff Rogers <dvrsn@REDACTED> wrote:
> This does raise a style issue I've wondered about:
> is it better to use
> guards or match patterns? Where you have
>
> read_utf8(N, S, Data) when N > 0 -> .... ;
> read_utf8(0, S, Data) -> ... .
>
> I would be inclined to use
>
> read_utf8(0, S, Data) -> ... ;
> read_utf8(N, S, Data) -> ... .
>
> without using guards. Is one generally preferred,
> or it is just a style
> choice? I assume that the compiler optimizes then
> to pretty much the
> same thing.
Once upon a time, I think the compiler did a better
job with the first version, but I'm not sure it does
today. So it's mostly a stylistic issue for me. There
are a couple of nits, though:
1. With an explicit test of (N > 0), the two clauses
don't overlap (ie, at most one of them can match for
any input), so you can reorder them freely.
Occasionally useful.
2. And (N > 0) also avoids an infinite loop if you
pass a negative N for some reason. That might not be
applicable in this case.
Best,
Thomas
____________________________________________________________________________________
Yahoo! oneSearch: Finally, mobile search
that gives answers, not web links.
http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC
More information about the erlang-questions
mailing list