<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Yes, you're right and this make sense at some level, particularly if the function I've called was</div><div><br></div><div>characters_to_binary/1.</div><div><br></div><div>Indeed, as Magnus Henoch mentioned in a related email, there is a function for conversion of unicode characters:</div><div><br></div><div>unicode:characters_to_binary/1;</div><div><br></div><div>So, why should the other one be called: list_to_binary/1 instead instead of characters_to_binary/1</div><div><br></div><div>If one disregard the existence of any previous knowledge, and given that a list may contain any number of arbitrary types, including a list itself,  what should be a reasonable expectation for (and here's the kicker -- not an input argument itself, for it is perfectly acceptable to assume it to be a list, but) a content of the input argument?</div><div><br></div><div>It's surprising (at least was to me) to expect a content of an input argument ( formerly known as <i>list </i>) to be limited to a list of octets, as much as it is surprising to see that  integer_to_binary( 65536 ) results in <<"65536">> instead of <<255,255>>, that is, surprising to se that it behaves like a shortcut to  <i>list_to_binary( integer_to_list( 65536 )).</i></div><div><br></div><div>On the other hand, it is what it is, and, in a way,  I am quite embarrassed that I assumed that integers would be automagically converted to appropriate number of octets, for this is just as unreasonable and arbitrary expectation. </div><div><br></div><div>Thank you for your responses.</div><div><br></div><div>Kind regards</div><div><br></div><div>V/</div><div><br></div><div><div><div><br><div><div>On 18 Mar 2014, at 3:19 PM, Steve Vinoski wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 18, 2014 at 9:13 AM, Valentin Micic <span dir="ltr"><<a href="mailto:valentin@pixie.co.za" target="_blank">valentin@pixie.co.za</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">Hi all,<div><br></div><div>
(my apologies if this has been covered already)</div><div><br></div><div>Is there any reason why:</div><div><br></div><div><div><i><font face="Menlo">(twist@macbookv)820> list_to_binary( lists:seq(1,255) ).</font></i></div>
<div><i><font face="Menlo"><<1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,</font></i></div><div><i><font face="Menlo">  22,23,24,25,26,27,28,29,…>></font></i></div><div><br></div><div>works, but </div>
<div><br></div><div><font face="Menlo">(twist@macbookv)821> list_to_binary( lists:seq(1,256) ).</font></div><div><font face="Menlo">** exception error: bad argument</font></div><div><font face="Menlo">     in function  list_to_binary/1</font></div>
<div><font face="Menlo">        called as list_to_binary([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,</font></div><div><font face="Menlo">                                  23,24,25,26,27,28|…])</font></div></div>
<div><br></div><div>breaks on <b>Erlang 16B02</b>? Was the limit to 255 characters for list_to_binary/1 always there and I just failed to see it before?</div></div></blockquote><div><br></div><div>This has nothing to do with the number of characters, but rather that you can't represent the value 256 in a byte:</div>
<div><br></div><div>1> list_to_binary([256]).</div><div>** exception error: bad argument</div><div>     in function  list_to_binary/1</div><div>        called as list_to_binary([256])</div><div><br></div><div>--steve</div>
</div></div></div>
</blockquote></div><br></div></div></div></body></html>