[erlang-questions] Dict size in guards

Ulf Wiger <>
Fri Feb 11 09:03:17 CET 2011


On 11 Feb 2011, at 02:02, Richard O'Keefe wrote:

> The inclusion of length/1 in guard tests has always been more than
> a bit dodgy.  It's better taste to avoid it.  Not least because
> if you do something like
> 
> f(L)
>   when length(L) > 10 -> long_case(L);
>   when length(L) >  5 -> medium_case(L);
>   when true           -> short_case(L).
> 
> doesn't do what people often think.  I've several times been
> caught by that.


Also, as pointed out by Kostis in his Tidier presentations, a fairly 
common use is 

f(L) when length(L) == 0 -> …

which of course has to traverse the whole (potentially very long) list.

BR,
Ulf

Ulf Wiger, CTO, Erlang Solutions, Ltd.
http://erlang-solutions.com





More information about the erlang-questions mailing list