Pattern match is one of coolest things in Erlang. Note that you can involve your tag to badmatch error<br><br>{my_tag, ok} = {my_tag, my_call(X)}<br><br>and custom data too<br><br>{my_tag, ok, X} = {my_tag, my_call(X), X}<br>
<br>cool, isn't it?<br><br><div class="gmail_quote">On Fri, Mar 20, 2009 at 3:34 PM, Paul Fisher <span dir="ltr"><<a href="mailto:pfisher@alertlogic.net">pfisher@alertlogic.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">Hynek Vychodil wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
One of Joe's suggestion: program success case code separated from error handling. You can make it in this way<br>
<br>
create_user(Email, UserName, Password) -><br>
  try<br>
    ok = new_email(Email),<br>
    ok = valid_user_name(UserName),<br>
    ok = new_user(UserName),<br>
    ok = strong_password(Password),<br>
    ...<br>
    _create_user(Email, UserName, Password)<br>
  catch<br>
    error:{badmatch, email_in_use} -> do_something();<br>
    error:{badmatch, invalid_user_name} -> do_something();<br>
    error:{badmatch, user_exists} -> do_something();<br>
    error:{badmatch, weak_password} -> do_something();<br>
    ...<br>
  end.<br>
</blockquote>
<br></div>
+1 Bravo!<br>
<br>
<br>
--<br><font color="#888888">
paul<br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>--Hynek (Pichi) Vychodil<br><br>Analyze your data in minutes. Share your insights instantly. Thrill your boss.  Be a data hero!<br>Try Good Data now for free: <a href="http://www.gooddata.com">www.gooddata.com</a><br>