<br><br><div class="gmail_quote">On Sun, Nov 16, 2008 at 1:48 AM, Richard Carlsson <span dir="ltr"><<a href="mailto:richardc@it.uu.se">richardc@it.uu.se</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d">damien morton wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote></div><div class="Ih2E3d">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Still, what strikes me about the erlang libraries is the tremendous variety of techniques used to signal the return of a value or not.<br>
<br>
Sometimes nil/Value, sometimes false/Value, sometimes []/[Value], sometimes false/{value,Value}<br>
</blockquote>
<br></div>
<br>
I've tried to promote {value,X}/none as a standard maybe-type, but it's<br>
hard to do much about all the existing code out there.<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
For a function that can return 0 or 1 answers, I personally like the []/[Value] approach.<br>
</blockquote>
<br></div>
[]/[X] is ok for "searches" as in mnesia, where in some cases you can<br>
get several elements as a result, but as a general mechanism it always<br>
makes a reader think "so, can I ever get more than one value here?", so<br>
it's not good for clarity.<br><font color="#888888"></font></blockquote><div><br></div><div>Would {}/{X} be more clear for 0 or 1 answers, and []/[...] for 0 or more answers?</div><div><br></div><div>Not too keen on the none/{value,Value} approach - it feels irregular somehow.</div>
</div>