exported variables (was: RE: How to make GS Widgets)

Ulf Wiger <>
Sat Apr 17 22:59:46 CEST 2004


On Fri, 16 Apr 2004 19:48:40 -0700, Jay Nelson <> wrote:

> At 08:19 PM 4/16/04 +0200, Ulf Wiger wrote:
>
>> ... is how how I would write it.  (:
>>
>> validate_colors({R, G, B}) ->
>>    VC = fun(C) -> validate_color(C) end,
>>    {VC(R), VC(G), VC(B)}.
>>
>> validate_color(C) when is_integer(C), C > 0, C < 255 ->
>>    C.
>
> I assume you intended another clause for the non-valid
> cases to avoid the program failing with bad_match:
>
> validate_color(_) ->
>      0.

Actually, no, but I was aware of the fact that by doing so,
I changed the semantics of the code.

I usually don't silently transform illegal input to default
values, especially not in early versions. I find that it is
almost always better to let the program fail in those
cases. And function_clause is a perfectly good way to fail,
IMHO.  (:

/Uffe
-- 
Ulf Wiger




More information about the erlang-questions mailing list