<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 6 Apr 2017, at 16:29, Ricardo Parada via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Another thought on the use of single quotes (an possibly the proposed escape character). Do you think the closing single quote could be made optional since key paths cannot have spaces? Or would that be confusing for beginners?</span></div></blockquote><div><br class=""></div><div><div>Key paths can (probably) have spaces:</div><div><br class=""></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>Welcome to Apple Swift version 3.1 (swiftlang-802.0.48 clang-802.0.48).</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span> 1> Double.nan.isNaN</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>$R0: Bool = true</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span> 2> Double . nan . isNaN</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>$R1: Bool = true</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span> 3> Double .nan .isNaN</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>$R2: Bool = true</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span> 4> Double. nan. isNaN</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>error: extraneous whitespace after '.' is not permitted</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Double. nan. isNaN</font></div><div><font face="Menlo" class=""><span class="Apple-tab-span" style="white-space:pre">        </span> ^~</font></div><div><br class=""></div></div><blockquote type="cite" class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">For example, these two would be equivalent:</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class=""><div class=""><font class="" face="Monaco" style="background-color: rgba(255, 255, 255, 0); font-size: 12px;"> let isPuppyPredicate = '<font class="" color="#980096">Pet.type</font> == .dog && <font class="" color="#980096">'Pet.age</font> < 12</font></div></div><div class=""><font class="" face="Monaco" style="background-color: rgba(255, 255, 255, 0); font-size: 12px;"> let isPuppyPredicate = '<font class="" color="#980096">Pet.type</font></font><span class="" style="font-family: Monaco; font-size: 12px;">'</span><span class="" style="font-size: 12px; background-color: rgba(255, 255, 255, 0); font-family: Monaco;"> == .dog && </span><font class="" color="#980096" style="font-size: 12px; background-color: rgba(255, 255, 255, 0); font-family: Monaco;">'Pet.age</font><span class="" style="font-family: Monaco; font-size: 12px;">'</span><span class="" style="font-family: Monaco; font-size: 12px; background-color: rgba(255, 255, 255, 0);"> < 12</span></div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="">Or this:</div><div class=""><br class=""></div><div class=""><div class=""><div class=""><font class="" face="Monaco" style="background-color: rgba(255, 255, 255, 0); font-size: 12px;"> let isPuppyPredicate = \<font class="" color="#980096">Pet.type</font> == .dog && \<font class="" color="#980096">Pet.age</font> < 12</font></div></div><div class=""><font class="" face="Monaco" style="background-color: rgba(255, 255, 255, 0); font-size: 12px;"> let isPuppyPredicate = \<font class="" color="#980096">Pet.type\</font></font><span class="" style="font-size: 12px; background-color: rgba(255, 255, 255, 0); font-family: Monaco;"> == .dog && \</span><font class="" color="#980096" style="font-size: 12px; background-color: rgba(255, 255, 255, 0); font-family: Monaco;">Pet.age\</font><span class="" style="font-family: Monaco; font-size: 12px; background-color: rgba(255, 255, 255, 0);"> < 12</span></div></div><div class=""><br class=""></div></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">You would use the closing character normally when wanting to invoke a method on the key path object.</div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Any thoughts?</div></blockquote></div><br class=""></body></html>