Erlang has always had exceptions! The problem is much more complex than this. Always signaling an error would make coding extremely difficult, almost as bad as always forcing you to check return values.<br><br>The problem is, of course, that what is an error can be very case specific. In this case, whether you can find the tuple in the list or not is an error depends on whether the tuple *should* be there or if you are checking *if* it is there. Same thing, for example, with opening a file.<br>

<br>Always signaling an error would also tend to hide *real* errors from the more testin type of errors. So even in this simple case it would be difficult to see if the element was not there or for example you had a type error, which always IS a *real* error. You would to wrap thins everywhere in try's and try to look at the error type to determine what was happening. Big Win there! (that was being sarcastic)<br>

<br>So, the problem is much more complex than just doing either or and libraries have to try to be reasonable. Having different functions for different cases is an easy way. Returning wrapped values makes it easy for the caller to show what they consider an error. That being said I feel there are some cases which are always errors. For example a bad type is always an error.<br>

<br>Robert<br><br><div class="gmail_quote">2009/5/4 Tony Arcieri <span dir="ltr"><<a href="mailto:tony@medioh.com">tony@medioh.com</a>></span><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"><div class="gmail_quote">On Sat, May 2, 2009 at 3:50 PM, mats cronqvist <span dir="ltr"><<a href="mailto:masse@kreditor.se" target="_blank">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;">


 My theory is that the people who wrote this "programming rule" were<br>
  (good) C programmers, and thus felt a need to check if the value<br>
  returned was ok before they dared use it.<br></blockquote></div><br></div>My theory is originally the Erlang VM didn't have exceptions, so this was the only way to do it, and for the sake of consistency has remained even after the advent of exceptions.<br clear="all">

<font color="#888888">
<br>-- <br>Tony Arcieri<br><a href="http://medioh.com" target="_blank">medioh.com</a><br>
</font><br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-questions</a><br></blockquote></div><br>