Hi Joe,<div><br></div><div>Regarding the clarity, you can see from the length of this thread how clear your definition is. :)</div><div><br></div><div>Regarding the correctness, your definition is a bit tricky (arguable if taking into account the difference in between Unicode code points and Unicode encoding schemes) in my opinion (non-expert opinion, though). That's because even if using UTF-8 encoding scheme, for example, Erlang knows nothing about the correlation in between the elements of the list, so, the sequence can be interpreted as code points in Latin-1 region even if those code points may make no real sense in Latin-1 when replaced with the indexed characters (especially in the region 128 - 255). For clarity, your famous <span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">"a∞b" in Unicode code points is [97,8734,98] (this format may break the code) while in UTF-8 encoding scheme is reading [</span><font color="#222222" face="arial, sans-serif">97,226,136,158,98</font><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">] (Erlang compiler has no idea that the sequence [226,136,158] should be built back to 8734 before passing it back to the environment, so, strange symbols may appear if the environment interprets the integers as Unicode code points - which usually does). When UTF-8 support will be available in Erlang, I suppose the string will be accepted internally also as Unicode code points for the range from U+0080 - U+1</span><font color="#222222" face="arial, sans-serif">FFFFF, but until then the accepted integers represent the disconnected UTF-8 encoding scheme</font><span style="color:rgb(34,34,34);font-family:arial,sans-serif"> </span><span style="color:rgb(34,34,34);font-family:arial,sans-serif">sequence of bytes</span><span style="color:rgb(34,34,34);font-family:arial,sans-serif">. It is still the user's job to transform them back in Unicode code points for the environment to display correctly the symbols (e.g., io:format("~ts~n",[[97,8734,98]]) will reproduce the correct string in an UTF-8 environment</span><span style="color:rgb(34,34,34);font-family:arial,sans-serif">).</span></div>
<div><br></div><div>This is my 2c opinion (I hope I offended no expert).</div><div><br></div><div>CGS</div><div><br><br><div class="gmail_quote">On Tue, Jul 31, 2012 at 11:24 AM, Joe Armstrong <span dir="ltr"><<a href="mailto:erlang@gmail.com" target="_blank">erlang@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm working on a 2'nd edition of my book, and have got to strings :-)<br>
Strings confuse everybody, including me so I have a few questions:<br>
<br>
To start with Erlang doesn't have strings - it has lists (not strings)<br>
and it has string literals.<br>
<br>
I want to define a string - is this correct:<br>
<br>
<< A "string" is a list of integers where the integers<br>
      represent Unicode codepoints. >><br>
<br>
Questions:<br>
    Is the sentence inside << .. >> using the correct terminology?<br>
    If not what should it say?<br>
<br>
    Is the sentence inside << ... >> widely understood, do you think this<br>
    would confuse a lot of people?<br>
<br>
    Is the phrase "string literal" widely understood?<br>
<br>
<br>
Cheers<br>
<br>
/Joe<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br></div>