<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="">I agree with you that tuples theoretically (not sure about practicality) &nbsp;should be part of something broader (though I have not thought too deeply about it). &nbsp;<div class=""><br class=""></div><div class="">A tuple is not much different than just a heterogeneous list of typed values (immutable). &nbsp;</div><div class=""><br class=""></div><div class="">A label in a certain way could be seen as another type of some sort - a column header of sorts. &nbsp;</div><div class=""><br class=""></div><div class="">The same things that you can do on lists should really be available at tuples. &nbsp;You should be able to append values - which returns a new immutable heterogenous list of the similar types. &nbsp;</div><div class=""><br class=""></div><div class="">Filter out values, flatten the list, map values from one list to another (including ability to transform labels). &nbsp;</div><div class=""><br class=""></div><div class="">I do not see them as a function signature, but a collection type. &nbsp;</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 2016-02-06, at 21:01:43, plx 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=""><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=""><div class="">+1.</div><div class=""><br class=""></div><div class="">I’m in the camp of people who would want an explicit version of this to make an eventual return, ideally as part of a broader suite of "tuple-manipulation operations”.</div><div class=""><br class=""></div><div class="">In such a proposal I’d hope to see, for example, splatting, but also compiler-assistance for things like:</div><div class=""><br class=""></div><div class="">- tuple-concatenation: (a,b)##(c,d) =&gt; (a,b,c,d)</div><div class="">- tuple-flattening: (a,(b,(c,d))#flatten =&gt; (a,b,c,d)</div><div class="">- tuple-rearrange: (a,b,c,d)#rearrange(($2,$1),($4,$3)) =&gt; ((b,a),(d,c))</div><div class="">- tuple-relabel: (a,b,c,d)#relabel(foo:,bar:,baz:,qux:) =&gt; (foo: a, bar: b, baz: c, qux: d)</div><div class="">- tuple-unlabel: (foo: a, bar: b, baz: c, qux: d)#unlabel =&gt; (a,b,c,d)</div><div class=""><br class=""></div><div class="">…with the above as examples of the kinds of operations, and not really the syntax; whatever’s chosen, it ought to be possible — although perhaps not *advisable* — to write e.g.:</div><div class=""><br class=""></div><div class="">// plz use a dedicated “zip4" in real life:</div><div class="">for (a,b,c,d) in zip(zip(as,bs),zip(cs,ds)).lazy.map(#flatten) { … }</div><div class=""><br class=""></div><div class="">…but that’s enough about tuple operations for now, I just wanted to illustrate some of the operations that be supported.&nbsp;</div><div class=""><br class=""></div><div class="">Moving on, as I’m in favor of the proposal as it stands, I don’t have anything to contribute to the proposal itself.</div><div class=""><br class=""></div><div class="">That said, I *do* think it’s unwise to infer too much from low rates of use for implicit tuple splatting at this time; it seems a little unfair to treat &nbsp;“this feature doesn’t work" and "no one seems to be using it” as *independent* variables, here.</div><div class=""><br class=""></div><div class="">As one such example, I implemented a large amount of a largely-declarative, combinator-ish “JSON parsing” library that would’ve made heavy use of tuple-splatting *if* it actually worked, but as splatting wound up seeming troublesome I gave up trying to use splatting.&nbsp;</div><div class=""><br class=""></div><div class="">FWIW not having splatting doesn’t change the size of the *library* code very much, but makes each site-of-use substantially-larger.</div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 5, 2016, at 12:12 PM, Joe Groff 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=""><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="">Hello Swift community,<br class=""><br class="">The review of “Remove implicit tuple splat behavior from function applications” begins now and runs through February 9, 2016. The proposal is available here:<br class=""><br class=""><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0029-remove-implicit-tuple-splat.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0029-remove-implicit-tuple-splat.md</a></blockquote><div class=""><br class="">Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution mailing list at<br class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></div></blockquote><div class=""><br class="">or, if you would like to keep your feedback private, directly to the review manager. When replying, please try to keep the proposal link at the&nbsp;top of the message:<br class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">Proposal link:</div><div class=""><br class=""></div><div class=""><a href="http://github.com/apple/swift-evolution/blob/master/proposals/0029-remove-implicit-tuple-splat.md" class="">http://github.com/apple/swift-evolution/blob/master/proposals/0029-remove-implicit-tuple-splat.md</a></div><div class=""><br class=""></div><div class="">Reply text</div><div class=""><br class=""></div><div class="">Other replies</div><div class=""><br class=""></div></blockquote><div class=""><b class="">What goes into a review?<br class=""></b><br class="">The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction&nbsp;of Swift. When writing your review, here are some questions you might want to answer in your review:<br class=""><br class=""><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• What is your evaluation of the proposal?<br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• Is the problem being addressed significant enough to warrant a change to Swift?<br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• Does this proposal fit well with the feel and direction of Swift?<br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to&nbsp;those?<br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>• How much effort did you put into your review? A glance, a quick reading, or an in-depth study?<br class=""></div><div class=""><br class=""></div>More information about the Swift evolution process is available at<br class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><a href="https://github.com/apple/swift-evolution/blob/master/process.md" class="">https://github.com/apple/swift-evolution/blob/master/process.md</a></div></blockquote><div class=""><br class="">Thank you,<br class=""><br class="">-Joe<br class="">Review Manager</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=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></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=""></div></body></html>