<br><br><div class="gmail_quote">On Tue, Mar 24, 2009 at 9:24 PM, mats cronqvist <span dir="ltr"><<a href="mailto:masse@kreditor.se">masse@kreditor.se</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 <<a href="mailto:vychodil.hynek@gmail.com">vychodil.hynek@gmail.com</a>> writes:<br>
<br>
> code<br>
><br>
> ok = is_new_email1(Email).<br>
><br>
> doesn't looks like same amount of code<br>
><br>
> try is_new_email2(Email) catch throw:email_in_use -> email_in_use end.<br>
><br>
> First one turns return value to exception, second one turns exception to<br>
> return value. Second one seems more code, does not?<br>
<br>
</div>  but the exception generated in example 1 is a worthless 'badmatch'.<br>
<div class="im"></div></blockquote><div><br>I can flexible choose which worth-full 'badmatch'  will be generated just using {ok, Email} = {is_new_email1(Email), Email}. It all up to me. It is meaning of word 'flexible'.<br>
<br></div><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"><br>
> Even code<br>
><br>
> is_new_email1(Email) -><br>
>   case mnesia:dirty_read(email, Email) of<br>
>     []    -> ok;<br>
>     _ -> email_in_use<br>
>   end.<br>
><br>
> seems less than<br>
><br>
> is_new_email2(Email) -><br>
>   case mnesia:dirty_read(email, Email) of<br>
>     []    -> ok;<br>
>     _ -> throw(email_in_use)<br>
>   end.<br>
<br>
</div>  I think it should be written like this;<br>
<br>
is_new_email2(Email) -><br>
  try [] = mnesia:dirty_read(email, Email)<br>
  catch _:_ -> throw({email_in_use,Email})<br>
  end.<br>
<br>
  This is how your example 1 above has to be written too, if it is to<br>
  give a helpful error message.<br>
<font color="#888888"></font></blockquote><div><br>Yes, but what prevent me <br><br>is_new_email1(Email) -><br>  case mnesia:dirty_read(email, Email) of<br>    [] -> ok;<br>    _ -> {email_in_use,Email}<br>
   end.<br>
<br>and again, less code and more flexible. Each variant with throw can be written without throw in far flexible way.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<font color="#888888"><br>
  mats<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>