[erlang-questions] How do I elegantly check many conditions?
Gordon Guthrie
gordon@REDACTED
Fri Mar 20 14:40:04 CET 2009
Once more with feeling :(
check(UName, Email, Pwd) ->
Fun = f({_, _, X}) -> X end,
List = [{email, in_use, is_in_use_e(Email},
{UName, not_valid, not_valid(UName)},
{UName, in_use, is_in_use_u(UName)},
{Pwd, not_suitable, is_not_strong(Pwd)}],
lists:filter(Fun, List).
Gordon
On Fri, Mar 20, 2009 at 1:31 PM, Gordon Guthrie <gordon@REDACTED>wrote:
> Sorry, pressed send too soon by mistake - this doesn't answer your
> question...
>
>
> On Fri, Mar 20, 2009 at 1:30 PM, Gordon Guthrie <gordon@REDACTED>wrote:
>
>> Ryegug
>> How about a single conditional on a tuple?
>>
>> check(Email, Username, Password) ->
>> InUseE = check_in_use_email(Email),
>> AlphaNum = check_is_alphanumeric(Username),
>> InUseU = check_in_use_username(Username),
>> StrongEnough = check_password(password),
>>
>> case {InUseE, AlphaNum, InUseU, StrongEnough} of
>> {true, true, true, true} -> true;
>> _ -> false
>> end.
>>
>>
>> On Fri, Mar 20, 2009 at 1:20 PM, ryeguy <ryeguy1@REDACTED> wrote:
>>
>>> So when a user sends a request to register an account, they send their
>>> username, password, email, and other info. The registration function
>>> must verify all of their data. An example would be:
>>>
>>> - verify email not in use
>>> - verify username not in use
>>> - verify username is alphanumeric
>>> - verify all fields are above X characters long
>>> - verify all fields are less than Y characters long
>>>
>>> Now I don't want to have a 5 level deep if or case statement, but what
>>> other options do I have? Splitting it into separate functions sounds
>>> like a good idea, but then I just have to check the return value of
>>> the functions in some sort of conditional and it's back to the
>>> original problem.
>>>
>>> I could separate them into functions and then call an if statement
>>> with all of the conditionals OR'd together, but that wouldn't give me
>>> what I want because I need to be able to tell the user the specific
>>> error if there was one.
>>>
>>> How does one handle this kind of situation in erlang?
>>> _______________________________________________
>>> erlang-questions mailing list
>>> erlang-questions@REDACTED
>>> http://www.erlang.org/mailman/listinfo/erlang-questions
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20090320/b82d2fd9/attachment.htm>
More information about the erlang-questions
mailing list