<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="">On Jan 28, 2016, at 2:48 AM, Jens Persson <<a href="mailto:jens@bitcycle.com" class="">jens@bitcycle.com</a>> wrote:<div><blockquote type="cite" class=""><div class=""><div dir="ltr" class="">> +-0. I saw, in my dreams, many "different parts" of the language, like pattern matching, function argument- & parameter lists, and tuples, all just being one and the same simple yet powerful unifying concept ...<br class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
> :´ /<br class="">
<br class="">
</span>I had that dream too, very early on in Swift development, but it isn’t practical for a very large number of reasons…<br class="">
<span class=""><font color="#888888" class=""><br class="">
-Chris<br class="">
<br class="">
</font></span></blockquote></div><div class="gmail_extra"><br class=""></div>I guess you are right. But I'll take the opportunity to whine a bit anyway, perhaps it might be worth something, coming from my idealistic user/layman's perspective:</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">I feel as though the unifying-tuple-concept-dream could still come true, if only:-) the whole thing was redesigned from scratch, with a stronger focus on simplicity and consistency (the rules for argument/parameter lists, parameter naming, tuple types, tuple element labels, pattern matching etc).</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">IMHO not being able to eg think of, and use, argument/parameter lists as tuples/tuple types dumbs down and complicates the language, trading expressibility for boilerplate and special-casing.</div></div></div></blockquote><div><br class=""></div><div>As I mentioned, I agree with the general principle of eliminating special cases and having a single unifying principle. Also, the original swift model was that parameter lists *were just tuples*. We are still slowly digging the compiler out of that hole.</div><div><br class=""></div><div>Functions “need” to have things like inout, variadics, default arguments, and other features that either don’t make sense at all (e.g. inout), or are marginally useful but had huge complexity to the user model (varargs and default args).</div><div><br class=""></div><div>You’re right that a single unifying principle can be good, but there is a huge value in tuples being simple and self consistent with themselves without a ton of weird stuff hanging out on them just because functions need them.</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra">Yes, it seems like this aspect of the language are not wildly appreciated and used. </div></div></div></blockquote><div><br class=""></div><div>Function parameters are widely used :-)</div><div><br class=""></div><div>-Chris</div></div></body></html>