<div dir="ltr"><div>A few other thoughts:</div><div><br></div><div>* One of our (or at least my) overarching goals for this proposal is to refine identifier and operator sets by moving away from an ad-hoc character-by-character approach to a systematic treatment that relies on well-defined criteria to select blocks of characters for inclusion. My personal opinion is that reverting to discussions of individual characters, such as the turned ampersand, means we're simply re-shuffling the current set of identifier and operator characters to a different one, having failed to discover any systematic basis for doing so. I think one of the strongest parts of this proposal is the straight-up statement that identifier start characters shall be IDC_Start and identifier continuation characters shall be IDC_Continue, modulo a few ASCII characters that require special treatment in Swift.</div><div><br></div><div>* Particularly if the community insists on emoji being identifiers, we will have to critically evaluate how to proceed on that in tandem with operators, because there exist emojified operators and arrows, and certain emoji are encoded in blocks that are otherwise symbols, which Unicode is likely to deem as operators in the future. Moreover, IIUC, certain codepoints can be either emoji or non-emoji symbols and variant selectors can specify which they are, but in the absence of a variant selector *either* the emoji or non-emoji version can be correctly displayed depending on the platform. For some of these, the non-emoji version is either clearly or plausible an operator character. Therefore, without dealing *very* carefully with emoji and with operators at the same time, we are failing to address a key motivation of this proposal, which is to fix the incorrect separation between emoji operators and emoji identifiers.</div><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 21, 2016 at 2:36 PM, Xiaodi Wu <span dir="ltr"><<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@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 disagree pretty strongly with this approach. Firstly because as you've pointed out, changes to the operator characters will have effects on valid operator character sets, secondly because a major question about operators is whether it is feasible or no to manually exclude empty set and infinity given that Unicode is likely to reject that approach. For these reasons I feel very strongly that the reforming the operator and identifier characters must move in tandem.<div class="HOEnZb"><div class="h5"><br><div class="gmail_quote"><div dir="ltr">On Fri, Oct 21, 2016 at 14:28 Nevin Brackett-Rozinsky via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_7031135155568671463gmail_msg">I think it is important that we as a community discuss the non-operator portion of this proposal. And, given the strong opinions about operators that have been expressed, I think it is unlikely we will do so while major operator changes are on the table.<div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">Thus I would suggest that either the operator changes should be separated out into their own proposal, or we should make only minor (and generally consensus-agreed) changes to the operator set as part of this one.</div><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">Here is what I propose:</div><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">Emoji shall be identifiers, not operators.</div><div class="m_7031135155568671463gmail_msg">The turned ampersand shall be an operator, not an identifier.<br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">The empty set and infinity symbols shall be identifiers, not operators.</div><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">All other potential changes to the set of operator characters then go in their own proposal, which I am sure will receive a lot of attention.</div><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">It may turn out that the non-operator portion of this proposal nonetheless touches characters that Swift has designated for operators, in which case we may address those as they arise.</div><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">Does that sound like a reasonable way forward?</div></div><div dir="ltr" class="m_7031135155568671463gmail_msg"><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg">Nevin</div><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div><div class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"></div></div><div class="gmail_extra m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg"><div class="gmail_quote m_7031135155568671463gmail_msg">On Fri, Oct 21, 2016 at 9:27 AM, Ben Rimmington via swift-evolution <span dir="ltr" class="m_7031135155568671463gmail_msg"><<a href="mailto:swift-evolution@swift.org" class="m_7031135155568671463gmail_msg" target="_blank">swift-evolution@swift.org</a>></span> wrote:<br class="m_7031135155568671463gmail_msg"><blockquote class="gmail_quote m_7031135155568671463gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg">
> On 21 Oct 2016, at 13:42, Benjamin Spratling wrote:<br class="m_7031135155568671463gmail_msg">
><br class="m_7031135155568671463gmail_msg">
> Brackets and symbols are definitely operators. Different brackets are used to represent various quantum mechanical forms and operations.<br class="m_7031135155568671463gmail_msg">
<br class="m_7031135155568671463gmail_msg">
</span>The brackets are mostly "bracket pieces":<br class="m_7031135155568671463gmail_msg">
<span class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg">
[:Math_Symbol:]<br class="m_7031135155568671463gmail_msg">
- [:name=/\bANGLE\b/:]<br class="m_7031135155568671463gmail_msg">
</span><span class="m_7031135155568671463gmail_msg"> - [:Emoji:]<br class="m_7031135155568671463gmail_msg">
- [:ID_Continue:]<br class="m_7031135155568671463gmail_msg">
- [:NFC_Quick_Check=No:]<br class="m_7031135155568671463gmail_msg">
& [:Script_Extensions=Common:]<br class="m_7031135155568671463gmail_msg">
</span> & [:Block=Miscellaneous_<wbr>Technical:]<br class="m_7031135155568671463gmail_msg">
<br class="m_7031135155568671463gmail_msg">
<<a href="http://www.unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3AMath_Symbol%3A%5D%0D%0A-+%5B%3Aname%3D%2F%5CbANGLE%5Cb%2F%3A%5D%0D%0A-+%5B%3AEmoji%3A%5D%0D%0A-+%5B%3AID_Continue%3A%5D%0D%0A-+%5B%3ANFC_Quick_Check%3DNo%3A%5D%0D%0A%26+%5B%3AScript_Extensions%3DCommon%3A%5D%0D%0A%26+%5B%3ABlock%3DMiscellaneous_Technical%3A%5D" rel="noreferrer" class="m_7031135155568671463gmail_msg" target="_blank">http://www.unicode.org/cldr/<wbr>utility/list-unicodeset.jsp?a=<wbr>%5B%3AMath_Symbol%3A%5D%0D%0A-<wbr>+%5B%3Aname%3D%2F%5CbANGLE%<wbr>5Cb%2F%3A%5D%0D%0A-+%5B%<wbr>3AEmoji%3A%5D%0D%0A-+%5B%3AID_<wbr>Continue%3A%5D%0D%0A-+%5B%<wbr>3ANFC_Quick_Check%3DNo%3A%5D%<wbr>0D%0A%26+%5B%3AScript_<wbr>Extensions%3DCommon%3A%5D%0D%<wbr>0A%26+%5B%3ABlock%<wbr>3DMiscellaneous_Technical%3A%<wbr>5D</a>><br class="m_7031135155568671463gmail_msg">
<span class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg">
> Arrows are also useful as operators, including but not restricted to chemical reactions.<br class="m_7031135155568671463gmail_msg">
<br class="m_7031135155568671463gmail_msg">
</span>Including arrows, there are 740 operators:<br class="m_7031135155568671463gmail_msg">
<span class="m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg">
[:Math_Symbol:]<br class="m_7031135155568671463gmail_msg">
- [:name=/\bANGLE\b/:]<br class="m_7031135155568671463gmail_msg">
- [:name=EMPTY SET:]<br class="m_7031135155568671463gmail_msg">
- [:name=INFINITY:]<br class="m_7031135155568671463gmail_msg">
- [:Emoji:]<br class="m_7031135155568671463gmail_msg">
- [:ID_Continue:]<br class="m_7031135155568671463gmail_msg">
- [:NFC_Quick_Check=No:]<br class="m_7031135155568671463gmail_msg">
& [:Script_Extensions=Common:]<br class="m_7031135155568671463gmail_msg">
</span> & [[:Block=Arrows:]<br class="m_7031135155568671463gmail_msg">
[:Block=General_Punctuation:]<br class="m_7031135155568671463gmail_msg">
[:Block=Latin_1_Supplement:]<br class="m_7031135155568671463gmail_msg">
[:Block=Mathematical_<wbr>Operators:]<br class="m_7031135155568671463gmail_msg">
[:Block=Miscellaneous_<wbr>Mathematical_Symbols_A:]<br class="m_7031135155568671463gmail_msg">
[:Block=Miscellaneous_<wbr>Symbols_And_Arrows:]<br class="m_7031135155568671463gmail_msg">
[:Block=Supplemental_Arrows_<wbr>A:]<br class="m_7031135155568671463gmail_msg">
[:Block=Supplemental_Arrows_<wbr>B:]<br class="m_7031135155568671463gmail_msg">
[:Block=Supplemental_<wbr>Mathematical_Operators:]]<br class="m_7031135155568671463gmail_msg">
<br class="m_7031135155568671463gmail_msg">
<<a href="http://www.unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3AMath_Symbol%3A%5D%0D%0A-+%5B%3Aname%3D%2F%5CbANGLE%5Cb%2F%3A%5D%0D%0A-+%5B%3Aname%3DEMPTY+SET%3A%5D%0D%0A-+%5B%3Aname%3DINFINITY%3A%5D%0D%0A-+%5B%3AEmoji%3A%5D%0D%0A-+%5B%3AID_Continue%3A%5D%0D%0A-+%5B%3ANFC_Quick_Check%3DNo%3A%5D%0D%0A%26+%5B%3AScript_Extensions%3DCommon%3A%5D%0D%0A%26+%5B%5B%3ABlock%3DArrows%3A%5D%0D%0A+++%5B%3ABlock%3DGeneral_Punctuation%3A%5D%0D%0A+++%5B%3ABlock%3DLatin_1_Supplement%3A%5D%0D%0A+++%5B%3ABlock%3DMathematical_Operators%3A%5D%0D%0A+++%5B%3ABlock%3DMiscellaneous_Mathematical_Symbols_A%3A%5D%0D%0A+++%5B%3ABlock%3DMiscellaneous_Symbols_And_Arrows%3A%5D%0D%0A+++%5B%3ABlock%3DSupplemental_Arrows_A%3A%5D%0D%0A+++%5B%3ABlock%3DSupplemental_Arrows_B%3A%5D%0D%0A+++%5B%3ABlock%3DSupplemental_Mathematical_Operators%3A%5D%5D" rel="noreferrer" class="m_7031135155568671463gmail_msg" target="_blank">http://www.unicode.org/cldr/<wbr>utility/list-unicodeset.jsp?a=<wbr>%5B%3AMath_Symbol%3A%5D%0D%0A-<wbr>+%5B%3Aname%3D%2F%5CbANGLE%<wbr>5Cb%2F%3A%5D%0D%0A-+%5B%<wbr>3Aname%3DEMPTY+SET%3A%5D%0D%<wbr>0A-+%5B%3Aname%3DINFINITY%3A%<wbr>5D%0D%0A-+%5B%3AEmoji%3A%5D%<wbr>0D%0A-+%5B%3AID_Continue%3A%<wbr>5D%0D%0A-+%5B%3ANFC_Quick_<wbr>Check%3DNo%3A%5D%0D%0A%26+%5B%<wbr>3AScript_Extensions%3DCommon%<wbr>3A%5D%0D%0A%26+%5B%5B%3ABlock%<wbr>3DArrows%3A%5D%0D%0A+++%5B%<wbr>3ABlock%3DGeneral_Punctuation%<wbr>3A%5D%0D%0A+++%5B%3ABlock%<wbr>3DLatin_1_Supplement%3A%5D%0D%<wbr>0A+++%5B%3ABlock%<wbr>3DMathematical_Operators%3A%<wbr>5D%0D%0A+++%5B%3ABlock%<wbr>3DMiscellaneous_Mathematical_<wbr>Symbols_A%3A%5D%0D%0A+++%5B%<wbr>3ABlock%3DMiscellaneous_<wbr>Symbols_And_Arrows%3A%5D%0D%<wbr>0A+++%5B%3ABlock%<wbr>3DSupplemental_Arrows_A%3A%5D%<wbr>0D%0A+++%5B%3ABlock%<wbr>3DSupplemental_Arrows_B%3A%5D%<wbr>0D%0A+++%5B%3ABlock%<wbr>3DSupplemental_Mathematical_<wbr>Operators%3A%5D%5D</a>><br class="m_7031135155568671463gmail_msg">
<div class="m_7031135155568671463m_8003666388572021594HOEnZb m_7031135155568671463gmail_msg"><div class="m_7031135155568671463m_8003666388572021594h5 m_7031135155568671463gmail_msg"><br class="m_7031135155568671463gmail_msg">
-- Ben<br class="m_7031135155568671463gmail_msg">
<br class="m_7031135155568671463gmail_msg">
______________________________<wbr>_________________<br class="m_7031135155568671463gmail_msg">
swift-evolution mailing list<br class="m_7031135155568671463gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="m_7031135155568671463gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="m_7031135155568671463gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="m_7031135155568671463gmail_msg" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br class="m_7031135155568671463gmail_msg">
</div></div></blockquote></div><br class="m_7031135155568671463gmail_msg"></div>
______________________________<wbr>_________________<br class="m_7031135155568671463gmail_msg">
swift-evolution mailing list<br class="m_7031135155568671463gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="m_7031135155568671463gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="m_7031135155568671463gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="m_7031135155568671463gmail_msg" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br class="m_7031135155568671463gmail_msg">
</blockquote></div></div></div></blockquote></div><br></div></div>