<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">A quick question since we’ve already accepted this proposal and have an implementation in-tree: do you expect this breaking change to be accepted for Swift 4, or do you expect this change to break everybody once they’ve already migrated to the triple-quoted string form in a future release?</div><div class=""><br class=""></div><div class="">~Robert Widmann</div><br class=""><div><blockquote type="cite" class=""><div class="">On May 25, 2017, at 11:02 PM, Dave Yost via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class=""><div class="">Beauty is a top-three goal of Swift, so a proposal that is not beautiful should be rethought until it is.</div><div class=""><br class=""></div><div class="">1.&nbsp;<span style="font-family: Menlo;" class="">"</span><span style="font-family: Menlo;" class="">"</span><span style="font-family: Menlo;" class="">"</span>&nbsp;is ugly.</div><div class=""><br class=""></div><div class="">2. Choosing syntax so as to pander to hacks in a few existing tools is the road to Ugly.</div><div class=""><br class=""></div><div class="">3. It’s inelegant syntax design for start and end delimiters to be identical, as for example ASCII quote marks are.[1]</div><div class=""><br class=""></div><div class="">4. Mirror image start and end delimiters are preferred, for example&nbsp;<font face="Menlo" class="">{</font>&nbsp;and <font face="Menlo" class="">}</font>.[1]</div><div class=""><br class=""></div><div class="">5. Escaping is ugly and preferably should not be necessary or even allowed.</div><div class=""><br class=""></div><div class="">Therefore, I propose, by example:</div><div class=""><br class=""></div><div class=""><font face="Menlo" class="">&nbsp; let foo =&nbsp;<br class=""></font><font face="Menlo" class="">&nbsp; &nbsp; /</font><span style="font-family: Menlo;" class="">"</span><font face="Menlo" class="">xx<br class=""></font><div class=""><font face="Menlo" class="">&nbsp; &nbsp; The indent of /"</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp; &nbsp; &nbsp; dictates indentation&nbsp;</font><span style="font-family: Menlo;" class="">and must match&nbsp;</span></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp; all indents through the&nbsp;</font><span style="font-family: Menlo;" class="">"</span><font face="Menlo" class="">/</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp;&nbsp;</font><span style="font-family: Menlo;" class="">"</span><font face="Menlo" class="">/xx</font></div><div class=""><br class=""></div><div class="">where an optional arbitrary identifier, for example “xx”, can be appended to both the open and the close quote delimiters to avoid the need for escaping the close quote delimiter. The identifier has no other significance in the program.</div><div class=""><br class=""></div><div class="">I further propose that&nbsp;<font face="Menlo" class="">/'</font>&nbsp;and&nbsp;<span style="font-family: Menlo;" class="">'</span><font face="Menlo" class="">/</font>&nbsp;should be used to delimit a string that is interpreted literally, including newlines except for the newline on the last line of the string.</div><div class=""><br class=""></div><div class="">In future, consideration should be given to the idea of following the&nbsp;<font face="Menlo" class="">/</font><span style="font-family: Menlo;" class="">"</span>&nbsp;delimiter by a set of space-separated flags to determine treatment of newlines, the escape character (so it doesn’t have to be backslash), use of interpolated strings, the use of escape characters, etc.</div><div class=""><br class=""></div><div class="">Dave</div><div class=""><div id="signature" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div></div></div></div><div class="">(I intended all single and double quotes in this message to be ASCII, not curly. If any are curly, then blame the macOS Mail app.)</div><div class=""><br class=""></div><div class=""><div id="signature" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""></div></div></div><div class="">[1]. &nbsp;I think Swift should allow delimiting strings with “curly” quotes, and they should nest. See 3, 4, 5 above.</div></div></div><div class=""><br class=""></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>