<div dir="ltr">Although there was, as you say, some push-back against revamping our set of operator characters, there was also substantial push-forward. Many people want to resolve the problematic situation we currently have regarding the designation of operators and identifiers.<div><div><br></div><div>And indeed, cutting back to ASCII-only operators would have been an abominable choice. However waiting for the Unicode Consortium to draft guidelines for operator characters means prolonging our existing predicament. Additionally, in the discussion last fall it was mentioned that Unicode personnel are aware of what we are doing with Swift operators, and that our decisions may help to inform their classification of operator characters:</div><div><br></div><div><span style="font-size:12.8px">On Fri, Oct 21, 2016 at 5:38 PM, Jonathan S. Shapiro </span><span dir="ltr" style="font-size:12.8px">&lt;<a href="mailto:jonathan.s.shapiro@gmail.com" target="_blank">jonathan.s.shapiro@<wbr>gmail.com</a>&gt;</span><span style="font-size:12.8px"> wrote:</span><br style="font-size:12.8px"><blockquote class="gmail_quote" style="font-size:12.8px;margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"></div></div></blockquote></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">That&#39;s a feasible way to go, but keep in mind that the UAX31 changes are being co-designed with and informed by the current discussion. There are a bunch of things that have come up here that will allow UAX31 to side-step some &quot;might have happened&quot; mistakes, so this discussion has been very useful.<br><br>The Swift community can and should make its own decision about whether to remain engaged. The risk of disengagement is that messy compatibility issues will probably have to be faced later that we can easily head-off now.</blockquote><div><br></div><div>Given all these considerations, I think the principled approach is for us to move forward with a 3-part categorization of characters into operators, identifiers, and unspecified (to be determined). That way we need not harangue ourselves over every controversial glyph, and may instead quickly determine those characters which should definitely be operators and those which should definitely be identifiers, while saving the difficult decisions until such time as Unicode produces recommendations and/or we decide to undertake a more comprehensive review.</div><div><br></div><div>Nevin</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Feb 5, 2017 at 8:29 PM, Xiaodi Wu <span dir="ltr">&lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">IIRC, where we left the discussion last time was that there was work not yet complete within Unicode on delineating identifier and operator characters. As there was broad agreement to align identifier characters with Unicode standards, and since the strict separation between identifiers and operators means that no character should belong to both, there was hesitation to declare an operator what Unicode may later deem to be an identifier.<br><br>There was strenuous objection to temporarily cutting back operators to the ASCII range until Unicode completes its work, but also pushback in going character-by-character above the ASCII range.<br><br>In any case, \ seems perfectly reasonable as an additional operator character that doesn&#39;t have to wait for Unicode.<div class="gmail-HOEnZb"><div class="gmail-h5"><br><div class="gmail_quote"><div dir="ltr">On Sun, Feb 5, 2017 at 19:02 T.J. Usiyan via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="gmail-m_776308301254735667gmail_msg">+1 from me. <div class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"></div><div class="gmail-m_776308301254735667gmail_msg">I hope that operators get more work soon, especially with regard to math.</div></div><div class="gmail_extra gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"><div class="gmail_quote gmail-m_776308301254735667gmail_msg">On Sun, Feb 5, 2017 at 5:09 PM, Nevin Brackett-Rozinsky via swift-evolution <span dir="ltr" class="gmail-m_776308301254735667gmail_msg">&lt;<a href="mailto:swift-evolution@swift.org" class="gmail-m_776308301254735667gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br class="gmail-m_776308301254735667gmail_msg"><blockquote class="gmail_quote gmail-m_776308301254735667gmail_msg" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="gmail-m_776308301254735667gmail_msg">+1 as well. I also support adding these four symbols: <span style="font-size:12.8px" class="gmail-m_776308301254735667gmail_msg">⅀ ؆ ؇ ⅋</span> as operators.<div class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"></div><div class="gmail-m_776308301254735667gmail_msg">There was substantial discussion last fall about revamping operators in Swift, with the primary goal of removing characters that should not be in the set. I went through the Unicode tables and compiled a list of 1,020 characters that I think definitely should be operators [<a href="http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%5B%3ASm%3A%5D%0D%0A%0D%0A-%5Cp%7BBlock%3DSuperscripts+And+Subscripts%7D%0D%0A-%5Cp%7BBlock%3DMiscellaneous+Technical%7D%0D%0A-%5Cp%7BBlock%3DGeometric+Shapes%7D%0D%0A-%5Cp%7BBlock%3DMiscellaneous+Symbols%7D%0D%0A-%5Cp%7BBlock%3DAlphabetic+Presentation+Forms%7D%0D%0A-%5Cp%7BBlock%3DSmall+Form+Variants%7D%0D%0A-%5Cp%7BBlock%3DHalfwidth+And+Fullwidth+Forms%7D%0D%0A-%5Cp%7BBlock%3DMathematical+Alphanumeric+Symbols%7D%0D%0A-%5Cp%7BBlock%3DArabic+Mathematical+Alphabetic+Symbols%7D%0D%0A-%5Cp%7Bsubhead%3DVariant+letterforms+and+symbols%7D%0D%0A-%5Cp%7Bsubhead%3DLetterlike+symbol%7D%0D%0A%0D%0A%5Cp%7BBlock%3DArrows%7D%0D%0A%5B%2F+%3D+%5C-+%2B+%21+*+%25+%3C+%3E+%5C%26+%7C+%5C%5E+~+%3F%5D%0D%0A%5B%C2%A1+%C2%A2+%C2%A3+%C2%A4+%C2%A5+%C2%A6+%C2%A7+%C2%A9+%C2%AB+%C2%AC+%C2%AE+%C2%B0+%C2%B1+%C2%B6+%C2%BB+%C2%BF%5D+-+%5B%C2%A2+%C2%A3+%C2%A4+%C2%A5+%C2%A9+%C2%AE%5D%0D%0A%5Cp%7Bsubhead%3DGeneral+punctuation%7D+-+%5BU%2B203F+U%2B2040+U%2B2045+U%2B2046+U%2B2054%5D%0D%0A%5Cp%7Bsubhead%3DDouble+punctuation+for+vertical+text%7D%0D%0A%5Cp%7Bsubhead%3DArchaic+punctuation%7D+-+%5BU%2B2E31+U%2B2E33+U%2B2E34+U%2B2E3F%5D%0D%0AU%2B214B%5D&amp;g=&amp;i=" class="gmail-m_776308301254735667gmail_msg" target="_blank">list of operator characters</a>]</div><div class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"></div><div class="gmail-m_776308301254735667gmail_msg">The effect of that would be to make 1,628 characters no longer usable as operators [<a href="http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%2F+%3D+%5C-+%2B+%21+*+%25+%3C+%3E+%5C%26+%7C+%5C%5E+~+%3F%0D%0AU%2B00A1+-+U%2B00A7%0D%0AU%2B00A9+U%2B00AB+U%2B00AC+U%2B00AE%0D%0AU%2B00B0+-+U%2B00B1%0D%0AU%2B00B6+U%2B00BB+U%2B00BF+U%2B00D7+U%2B00F7%0D%0AU%2B2016+-+U%2B2017%0D%0AU%2B2020+-+U%2B2027%0D%0AU%2B2030+-+U%2B203E%0D%0AU%2B2041+-+U%2B2053%0D%0AU%2B2055+-+U%2B205E%0D%0AU%2B2190+-+U%2B23FF%0D%0AU%2B2500+-+U%2B2775%0D%0AU%2B2794+-+U%2B2BFF%0D%0AU%2B2E00+-+U%2B2E7F%0D%0AU%2B3001+-+U%2B3003%0D%0AU%2B3008+-+U%2B3030%5D%0D%0A%0D%0A-%5B%5B%3ASm%3A%5D%0D%0A-%5Cp%7BBlock%3DSuperscripts+And+Subscripts%7D%0D%0A-%5Cp%7BBlock%3DMiscellaneous+Technical%7D%0D%0A-%5Cp%7BBlock%3DGeometric+Shapes%7D%0D%0A-%5Cp%7BBlock%3DMiscellaneous+Symbols%7D%0D%0A-%5Cp%7BBlock%3DAlphabetic+Presentation+Forms%7D%0D%0A-%5Cp%7BBlock%3DSmall+Form+Variants%7D%0D%0A-%5Cp%7BBlock%3DHalfwidth+And+Fullwidth+Forms%7D%0D%0A-%5Cp%7BBlock%3DMathematical+Alphanumeric+Symbols%7D%0D%0A-%5Cp%7BBlock%3DArabic+Mathematical+Alphabetic+Symbols%7D%0D%0A-%5Cp%7Bsubhead%3DVariant+letterforms+and+symbols%7D%0D%0A-%5Cp%7Bsubhead%3DLetterlike+symbol%7D%0D%0A%5Cp%7BBlock%3DArrows%7D%0D%0A%5B%2F+%3D+%5C-+%2B+%21+*+%25+%3C+%3E+%5C%26+%7C+%5C%5E+~+%3F%5D%0D%0A%5B%C2%A1+%C2%A2+%C2%A3+%C2%A4+%C2%A5+%C2%A6+%C2%A7+%C2%A9+%C2%AB+%C2%AC+%C2%AE+%C2%B0+%C2%B1+%C2%B6+%C2%BB+%C2%BF%5D+-+%5B%C2%A2+%C2%A3+%C2%A4+%C2%A5+%C2%A9+%C2%AE%5D%0D%0A%5Cp%7Bsubhead%3DGeneral+punctuation%7D+-+%5BU%2B203F+U%2B2040+U%2B2045+U%2B2046+U%2B2054%5D%0D%0A%5Cp%7Bsubhead%3DDouble+punctuation+for+vertical+text%7D%0D%0A%5Cp%7Bsubhead%3DArchaic+punctuation%7D+-+%5BU%2B2E31+U%2B2E33+U%2B2E34+U%2B2E3F%5D%0D%0AU%2B214B%5D&amp;g=&amp;i=" class="gmail-m_776308301254735667gmail_msg" target="_blank">list of non-operator characters</a>]</div><div class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"></div><div class="gmail-m_776308301254735667gmail_msg">However, my strategy was to be conservative in accepting operators. There are several Unicode blocks which contain some additional characters which we may want to have as operators [<a href="http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%5Cp%7BBlock%3DMiscellaneous+Technical%7D%0D%0A%5Cp%7BBlock%3DOptical+Character+Recognition%7D%0D%0A%5Cp%7BBlock%3DBox+Drawing%7D%0D%0A%5Cp%7BBlock%3DBlock+Elements%7D%0D%0A%5Cp%7BBlock%3DGeometric+Shapes%7D%0D%0A%5Cp%7BBlock%3DMiscellaneous+Symbols%7D%0D%0A%5Cp%7BBlock%3DDingbats%7D%0D%0A%5Cp%7BBlock%3DBraille%7D%0D%0A%5Cp%7BBlock%3DMiscellaneous+Symbols+And+Arrows%7D%0D%0A%5Cp%7BBlock%3DYijing+Hexagram+Symbols%7D%0D%0A%5Cp%7BBlock%3DMusical+Symbols%7D%0D%0A%5Cp%7BBlock%3DAncient+Greek+Musical+Notation%7D%0D%0A%5Cp%7BBlock%3DTai+Xuan+Jing+Symbols%7D%0D%0A%5Cp%7BBlock%3DMahjong+Tiles%7D%0D%0A%5Cp%7BBlock%3DDomino+Tiles%7D%0D%0A%5Cp%7BBlock%3DPlaying+Cards%7D%0D%0A%5Cp%7BBlock%3DOrnamental+Dingbats%7D%0D%0A%5Cp%7BBlock%3DAlchemical+Symbols%7D%0D%0A%5Cp%7BBlock%3DGeometric+Shapes+Extended%7D%0D%0A%5Cp%7BBlock%3DSupplemental+Arrows+C%7D%5D%0D%0A&amp;g=&amp;i=" class="gmail-m_776308301254735667gmail_msg" target="_blank">list of characters in those blocks</a>]</div><div class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"></div><div class="gmail-m_776308301254735667gmail_msg">I did not include the backslash because I decided not to mess with the choice of ASCII operators, however I do support making backslash an operator. I am not sure about currency symbols.</div><div class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"></div><div class="gmail-m_776308301254735667gmail_msg">Nevin</div><div class="gmail-m_776308301254735667gmail_msg"><div class="gmail-m_776308301254735667m_7905769738546608409h5 gmail-m_776308301254735667gmail_msg"><div class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"><div class="gmail_extra gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg"><div class="gmail_quote gmail-m_776308301254735667gmail_msg">On Sun, Feb 5, 2017 at 1:20 PM, Dave Abrahams via swift-evolution <span dir="ltr" class="gmail-m_776308301254735667gmail_msg">&lt;<a href="mailto:swift-evolution@swift.org" class="gmail-m_776308301254735667gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br class="gmail-m_776308301254735667gmail_msg"><blockquote class="gmail_quote gmail-m_776308301254735667gmail_msg" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-m_776308301254735667m_7905769738546608409m_-5874055934264812268gmail- gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg">
on Sun Feb 05 2017, Nicolas Fezans &lt;<a href="mailto:swift-evolution@swift.org" class="gmail-m_776308301254735667gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="gmail-m_776308301254735667gmail_msg">
<br class="gmail-m_776308301254735667gmail_msg">
&gt; Dear all,<br class="gmail-m_776308301254735667gmail_msg">
&gt;<br class="gmail-m_776308301254735667gmail_msg">
&gt; This is a rather simple proposal to add &#39;\&#39; (backslash character) as a<br class="gmail-m_776308301254735667gmail_msg">
&gt; valid operator-head in the swift grammar.<br class="gmail-m_776308301254735667gmail_msg">
&gt;<br class="gmail-m_776308301254735667gmail_msg">
&gt; One argument for it, is that there exist a backslash operator in the<br class="gmail-m_776308301254735667gmail_msg">
&gt; MATLAB/Scilab/Octave languages. In this languages A\B solves the linear<br class="gmail-m_776308301254735667gmail_msg">
&gt; system A*X = B for X (or the least square problem associated to it if the<br class="gmail-m_776308301254735667gmail_msg">
&gt; system of equations is overdetermined). I am doing some numerical<br class="gmail-m_776308301254735667gmail_msg">
&gt; computation in Swift and it would be nice to be able to declare the same<br class="gmail-m_776308301254735667gmail_msg">
&gt; operator name for this functionality.<br class="gmail-m_776308301254735667gmail_msg">
&gt;<br class="gmail-m_776308301254735667gmail_msg">
&gt; I might have missed some arguments for not adding them, but I seems to me<br class="gmail-m_776308301254735667gmail_msg">
&gt; that until now the \ character is only used inside of string literals. If<br class="gmail-m_776308301254735667gmail_msg">
&gt; that is the case, both uses should never generate a conflict or be<br class="gmail-m_776308301254735667gmail_msg">
&gt; ambiguous, isn&#39;t it? (String literals keep their interpretation of \ and \<br class="gmail-m_776308301254735667gmail_msg">
&gt; used otherwise within the swift code will be interpreted as an operator or<br class="gmail-m_776308301254735667gmail_msg">
&gt; as the beginning of an operator)<br class="gmail-m_776308301254735667gmail_msg">
&gt;<br class="gmail-m_776308301254735667gmail_msg">
&gt; I am curious to see what will be the feedback on this.<br class="gmail-m_776308301254735667gmail_msg">
<br class="gmail-m_776308301254735667gmail_msg">
</span>+1 if it doesn&#39;t clash with the grammar.<br class="gmail-m_776308301254735667gmail_msg">
<span class="gmail-m_776308301254735667m_7905769738546608409m_-5874055934264812268gmail-HOEnZb gmail-m_776308301254735667gmail_msg"><font color="#888888" class="gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg">
--<br class="gmail-m_776308301254735667gmail_msg">
-Dave<br class="gmail-m_776308301254735667gmail_msg">
</font></span><div class="gmail-m_776308301254735667m_7905769738546608409m_-5874055934264812268gmail-HOEnZb gmail-m_776308301254735667gmail_msg"><div class="gmail-m_776308301254735667m_7905769738546608409m_-5874055934264812268gmail-h5 gmail-m_776308301254735667gmail_msg"><br class="gmail-m_776308301254735667gmail_msg">
______________________________<wbr>_________________<br class="gmail-m_776308301254735667gmail_msg">
swift-evolution mailing list<br class="gmail-m_776308301254735667gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="gmail-m_776308301254735667gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail-m_776308301254735667gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail-m_776308301254735667gmail_msg" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br class="gmail-m_776308301254735667gmail_msg">
</div></div></blockquote></div><br class="gmail-m_776308301254735667gmail_msg"></div></div></div></div></div>
<br class="gmail-m_776308301254735667gmail_msg">______________________________<wbr>_________________<br class="gmail-m_776308301254735667gmail_msg">
swift-evolution mailing list<br class="gmail-m_776308301254735667gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="gmail-m_776308301254735667gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail-m_776308301254735667gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail-m_776308301254735667gmail_msg" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br class="gmail-m_776308301254735667gmail_msg">
<br class="gmail-m_776308301254735667gmail_msg"></blockquote></div><br class="gmail-m_776308301254735667gmail_msg"></div>
______________________________<wbr>_________________<br class="gmail-m_776308301254735667gmail_msg">
swift-evolution mailing list<br class="gmail-m_776308301254735667gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="gmail-m_776308301254735667gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail-m_776308301254735667gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail-m_776308301254735667gmail_msg" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br class="gmail-m_776308301254735667gmail_msg">
</blockquote></div>
</div></div></blockquote></div><br></div></div>