<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="">So maybe just eliminating the commas is enough, if possible I would like to avoid using parenthesis. I am not sure the rules, could do something like this<div class=""><br class=""></div><div class="">if possible would prefer not adding parens if possible (this is cleaner than the original proposal):</div><div class=""><br class=""></div><div class=""><div class=""><font face="Monaco" class="">let a = sel ->> </font><span class="" style="font-family: Monaco;">.Red: 1 .Green: 2 .Blue: 3</span></div></div><div class=""><div class=""><br class=""></div><div class="">if it is necessary then something like this:</div><div class=""><br class=""></div><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><div class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><div class=""><font face="Monaco" class="">let a = (sel ->> </font><span class="" style="font-family: Monaco;">.Red: 1, .Green: 2, .Blue: 3)</span></div><div class=""><span class="" style="font-family: Monaco;"><br class=""></span></div><div class=""><span class="" style="font-family: Monaco;">or </span></div><div class=""><span class="" style="font-family: Monaco;"><br class=""></span></div><div class=""><span class="" style="font-family: Monaco;">let a = (sel ->> .Red: 1 .Green: 2 .Blue: 3)</span></div><div class=""><span class="" style="font-family: Monaco;"><br class=""></span></div><div class=""><span class="" style="font-family: Monaco;">or </span></div><div class=""><br class=""></div></div></div></div></div></div></div></div></div></div><div class=""><div class=""><font face="Monaco" class="">let a = sel ->(</font><span class="" style="font-family: Monaco;">.Red: 1, .Green: 2, .Blue: 3)</span></div><div class=""><span class="" style="font-family: Monaco;"><br class=""></span></div><div class=""><font face="Monaco" class="">So essentially it is a multiplexer. </font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div class=""><font face="Monaco" class="">- Paul</font></div><div class=""><font face="Monaco" class=""><br class=""></font></div><div><blockquote type="cite" class=""><div class="">On Dec 16, 2015, at 4:36 PM, Paul Ossenbruggen <<a href="mailto:possen@gmail.com" class="">possen@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Chris,<div class=""><br class=""></div><div class="">So, just trying to understand if you think this is a good direction to continue with or you think it is inherently flawed. </div><div class=""><br class=""></div><div class="">Can you give me an example of a function argument list or array separator that we would have a problem? I will see if I can address it.</div><div class=""><br class=""></div><div class="">Thanks for the feedback!</div><div class=""><br class=""></div><div class="">- Paul</div><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Dec 16, 2015, at 3:14 PM, Chris Lattner <<a href="mailto:clattner@apple.com" class="">clattner@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">On Dec 16, 2015, at 2:56 PM, Paul Ossenbruggen via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:<br class=""><div class=""><blockquote type="cite" class="">I believe it also addresses the issues that Chris mentioned. <br class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><br class=""></div><div class="">to select from a boolean, a or b:</div><div class=""><font face="Monaco" class="">let a = sel ->> true, false</font></div><div class=""><br class=""></div><div class="">to select from an enum values as in a switch:</div><div class=""><br class=""></div><div class=""><font face="Monaco" class="">let a = sel ->> </font><span style="font-family: Monaco;" class="">.Red: 1, .Green: 2, .Blue: 3 </span></div><div class=""><font face="Monaco" class="">let b = sel ->> .Red: 1, .Green: 2, .Blue: 3, default: 4</font></div><div class=""><font face="Monaco" class="">let c = sel ->> case .Red: 1, case .Green: 2, case .Blue: 3, default: 4</font></div><div class=""><font face="Monaco" class="">let d = sel ->> .Red: 1, (sel ->> .Sun: .Yellow, .Moon: .White, .Stars: .Twinkle), .Green: 2, .Blue: 3, default: 4</font></div></div><div class=""><span style="font-family: Monaco;" class="">let e = sel ->> cases: .Red: 1, case .Green: 2, case .Blue: 3, default: 4</span></div><div class=""><span style="font-family: Monaco;" class=""><br class=""></span></div><div class=""><b class="">Disadvantages:</b></div><div class="">• May be a slight improvement in readability. Operators have to be looked up if you are not familiar with them. </div><div class="">• New concept that will have to be learned and not present in most C like languages so needs to be learned. </div></div></div></blockquote><br class=""></div><div class="">This specific proposal has another problem. Since you’re using “,” you’ve introduced grammar problems. For example, you wouldn’t be able to use this operator in a function argument list or array literal, because the , would be parsed as part of the argument list separator.</div><div class=""><br class=""></div><div class="">-Chris</div><br class=""></div></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div></div></div></body></html>