Unfortunately having the return value like this IS a bad idea in that you can only make a simple test without using an explicit case if you know the size of the tuple. There is no way to write a generic:<br><br>Tuple = keyfind(...)<br>

<br>which will accept a tuple but fail on a false. Just writing it like this and hoping will just pass on the error. I personally feel that returning {yes,Tuple} | no would have been better. If, of course, you always know the size of the tuple then it is easily usable.<br>

<br>In the dict modules we put in two functions for just this purpose: one which fails if a value is not found, and the other which returns tagged value depending on whether the value is found or not.<br><br>Robert<br><br>

<div class="gmail_quote">2009/5/1 Kostis Sagonas <span dir="ltr"><<a href="mailto:kostis@cs.ntua.gr">kostis@cs.ntua.gr</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;">

Kevin wrote:<br>
> ...<br>
<div class="im">> Ironically in the lists man page it says keysearch is deprecated in<br>
> favor of keyfind, which does exactly what the programming rules<br>
> cautions against.<br>
><br>
> keyfind(Key, N, TupleList) -> Tuple | false<br>
<br>
</div>There is nothing ironic or wrong here.  Tuple is a tuple, not an atom so<br>
the two cases cannot be confused.<br>
<font color="#888888"><br>
Kostis<br>
</font><div><div></div><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br>