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

Cedric Shock <>
Fri Apr 16 08:22:01 CEST 2004


Richard O'Keefe and Ulf Wiger,

Thank you for your suggestions of improved coding style. This is my 
first week of erlang programming, or even functional programming (I 
started by reading Concurrent Programming in Erlang a week ago). I am 
still strugling through documentation with almost everything I do. I 
like the style

{Red,Green,Blue} = case SuppliedColor of
                         {_,_,_} -> SuppliedColor;
                          _       -> {0,0,0}
                    end

For its brevity and the way it makes the purpose of the code clear. I 
have been bothered by the weekness of my quards, but I do not know how 
to make them stronger. How can I put gaurds on the values of members of 
tuples? For example, I would like the SuppliedColor to be integers in 
the range [0, 255]. How could I write this guard clause? Is this the 
right thing to do?

{Red,Green,Blue} = case SuppliedColor of
                         {TestRed,TestGreen,TestBlue} when
                           is_integer(TestRed),
                           is_integer(TestGreen),
                           is_integer(TestBlue),
                           TestRed =< 255, TestRed => 0,
                           TestGreen =< 255, TestGreen => 0,
                           TestBlue =< 255, TestBlue => 0,  ->
                             SuppliedColor;
                         _ ->
                             {0,0,0}
                    end

Thanks for your input,

Cedric Shock




More information about the erlang-questions mailing list