<div dir="ltr">Okay, that makes sense. Thank you.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Feb 9, 2014 at 8:43 PM, Bob Ippolito <span dir="ltr"><<a href="mailto:bob@redivi.com" target="_blank">bob@redivi.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If you assume that all functions have undefined behavior when given incorrectly typed inputs, it's perfectly consistent. Erlang code tends to assume correctly typed input because it's simpler to implement and the types can often be checked mechanically with tools such as dialyzer.<div class="HOEnZb">
<div class="h5"><br>
<br>On Sunday, February 9, 2014, Yoshihiro Tanaka <<a href="mailto:hirotnkg@gmail.com" target="_blank">hirotnkg@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">Right. I guess I'm questioning the accuracy of the document.<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Feb 9, 2014 at 7:52 PM, Siraaj Khandkar <span dir="ltr"><<a>siraaj@khandkar.net</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is just a surprising side effect of dynamic typing. To perform the<br>
append, the left list is traversed and the right is just blindly used as<br>
a tail, so it is never introspected and thus never has an opportunity to<br>
crash.<br>
<div><div><br>
<br>
On 2/9/14, 10:30 PM, Yoshihiro Tanaka wrote:<br>
> Hi,<br>
><br>
> In the document :<a href="http://www.erlang.org/doc/man/lists.html#append-2" target="_blank">http://www.erlang.org/doc/man/lists.html#append-2</a><br>
> It says:<br>
> append(List1, List2) -> List3, List1 = List2 = List3 = [T], T = term.<br>
><br>
> But considering the following behavior, it does not look correct:<br>
><br>
> 1> [] ++ undef.<br>
> undef<br>
> 2> undef ++ [].<br>
> ** exception error: bad argument<br>
>      in operator  ++/2<br>
>         called as undef ++ []<br>
> 3> [a,b] ++ undef.<br>
> [a,b|undef]<br>
> 4><br>
><br>
><br>
> Thoughts ?<br>
><br>
><br>
> Thank you<br>
> Yoshihiro<br>
</div></div></blockquote></div><br></div></div>
</blockquote>
</div></div></blockquote></div><br></div>