Yes, except why would you need to define `((A, B)) -> C`?, If you need to pass a 2-element tuple into a function that takes two parameters - you can! If you want to pass two values into a function that *looks* like it takes a single 2-element tuple - you can! Seems to me that the difference between `((A, B)) -> C` and `(A, B) -> C` is virtually non-existent. But keep in mind that this only works for bare tuples (the ones that can't have labels). Non-closure functions DO have labels, which is part of their signature, so this is a different story.
> On Jun 9, 2017, at 6:18 PM, Gwendal Roué <gwendal.r...@gmail.com> wrote: > > >> Le 9 juin 2017 à 17:12, Gor Gyolchanyan via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> a écrit : >> >>> >>> So I wonder if any of you have had any thoughts about what Swift's >>> parentheses-related future (or evolutionary baggage) will be? >>> >> >> I really wish swift used the concept of tuples **exclusively** for all >> purposes that involve parentheses, as well as dividing tuples into two >> categories: >> - Bare tuples, which do not have labels. >> - Rich tuples, which do. >> As a consequence, here's a list of statements that would become true: >> - All functions take exactly one parameter, which is a tuple. >> - All closures (a.k.a. function pointers) take exactly one parameter, which >> is a bare tuple. >> - All functions return exactly one parameter, which is a tuple. >> - Pattern matching is done on a single bare tuple using a single bare tuple >> pattern. >> >> The currently ongoing proposal to make a single-element tuple auto-flatten >> would work extremely well with this idea, by making all these changes >> completely backward-compatible. > > If I have well understood, Swift has evolved away from this. > > If what you describe were true, added to the fact that there is no such thing > as a one-element tuple in the language, then (A,B) -> C and ((A, B)) -> C > could not be distinguished, for the simple reason that ((A, B)) -> C could > not be defined. > > For ((A, B)) -> C to be defined, we'd need a function that takes exactly one > parameter, which is a tuple (your idea), whose single element is a tuple > (oops, there is no single-valued tuples). > > No opinion here, just they way I have understood recent Swift history. > Gwendal >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution