I think it would be of great value to post both here and at the bug itself.
Thanks! -- E, looking forward to it > On Dec 27, 2015, at 8:22 PM, Taras Zakharko <taras.zakha...@googlemail.com> > wrote: > > Ah, thank you for pointing this out! I think I would suggest a change or two > to your proposal, but I need to flesh them out first. Is it possible to leave > comments on the bug site? BTW, why was it delegated to the bug report system > in the first place? > > > >> On 28 Dec 2015, at 02:28, Erica Sadun via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> The most common use-case for this is with Cocoa classes, which are not set >> up for fluent implementation. A preliminary proposal (which I am not >> updating since the matter was referred to the bug report system) is here: >> https://gist.github.com/erica/6794d48d917e2084d6ed >> <https://gist.github.com/erica/6794d48d917e2084d6ed> Hopefully it explains >> the reason this would add to the Apple development ecosystem. The bug report >> is here: https://bugs.swift.org/browse/SR-160 >> <https://bugs.swift.org/browse/SR-160> >> >> -- E >> >> >>> On Dec 27, 2015, at 6:24 PM, Howard Lovatt <howard.lov...@gmail.com >>> <mailto:howard.lov...@gmail.com>> wrote: >>> >>> -1 doesn't seem worth adding it is not a lot of trouble to type `obj.` at >>> the start of every line. Also if an API is intended to be used like that >>> its methods would return `self` and it would be used in a FLUENT style. >>> >>> Sent from my iPad >>> >>> On 28 Dec 2015, at 9:00 AM, Erica Sadun via swift-evolution >>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>> >>>> I believe this has popped up on-list a few times. Search for method >>>> cascades: >>>> >>>> cascading site:https://lists.swift.org/pipermail/swift-evolution/ >>>> <http://lists.swift.org/pipermail/swift-evolution/> >>>> >>>> https://www.google.com/?gws_rd=ssl#q=cascading+site:https:%2F%2Flists.swift.org%2Fpipermail%2Fswift-evolution%2F >>>> >>>> <https://www.google.com/?gws_rd=ssl#q=cascading+site:https:%2F%2Flists.swift.org%2Fpipermail%2Fswift-evolution%2F> >>>> >>>> Other search terms include dart, initializers, ".." (although that may be >>>> hard to look for) >>>> >>>> -- E >>>> >>>> >>>>> On Dec 27, 2015, at 2:34 PM, Radosław Smogura via swift-evolution >>>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>>>> >>>>> Hi, >>>>> >>>>> Please find my comment in body: >>>>> >>>>> BR, >>>>> Radek Smogura >>>>>> On 27 Dec 2015, at 22:08, Taras Zakharko <taras.zakha...@uzh.ch >>>>>> <mailto:taras.zakha...@uzh.ch>> wrote: >>>>>> >>>>>> >>>>>>> On 27 Dec 2015, at 21:55, Mosab Elagha <mosabela...@gmail.com >>>>>>> <mailto:mosabela...@gmail.com>> wrote: >>>>>>> >>>>>>> Agreed, this seems like a great idea. Looks like it would also allow >>>>>>> for a lot of customization - for example out of one "template" object. >>>>>>> >>>>>>> Would the object have to already be initialized or could you initialize >>>>>>> it from this? IMO it would have to already be initialized or else it >>>>>>> might lead to confusion. >>>>>> >>>>>> The object could be any kind of valid Swift entity that has members >>>>>> (where you would usually use . to access them): object instance, type, >>>>>> struct etc. I can also imagine combining it with assignment, e.g. >>>>>> instead of >>>>>> >>>>>> let obj = MyClass() >>>>>> do with obj { >>>>>> prop1 = v1 >>>>>> setup2() >>>>>> } >>>>>> >>>>>> a combined assignment form such as >>>>>> >>>>>> do with let obj = MyClass() { >>>>>> prop1 = v1 >>>>>> setup2() >>>>>> } >>>>> I think in this case it’s important to define scope of obj - it should be >>>>> only “do with”, not the the outer one? >>>>> >>>>>> But this clashes with optional binding, so it might be not a good idea. >>>>>> >>>>>>> Also, would this be limited to instance methods? >>>>>> >>>>>> Anything you can access with the dot notation. >>>>>> >>>>>>> >>>>>>> -Mosab Elagha >>>>>>> >>>>>>> On Sun, Dec 27, 2015 at 3:13 PM, Radosław Smogura >>>>>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>>>>>> Hi, >>>>>>> >>>>>>> That’s a great idea! >>>>>>> >>>>>>> Kind regards, >>>>>>> Radek >>>>>>> >>>>>>> > On 27 Dec 2015, at 21:10, Taras Zakharko via swift-evolution >>>>>>> > <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >>>>>>> > >>>>>>> > Quite often, one needs to perform a number of operations on a single >>>>>>> > object (e.g. call up a bunch of configuration or action methods). >>>>>>> > This proposal is to extend the ‘do' statement with an explicit >>>>>>> > lexical scope feature. For instance, this piece of code >>>>>>> > >>>>>>> > object.do_something() >>>>>>> > object.do_somethind_else() >>>>>>> > object.prop1 = value >>>>>>> > >>>>>>> > becomes >>>>>>> > >>>>>>> > do with object // or with object do >>>>>>> > { >>>>>>> > do_something() >>>>>>> > do_somethind_else() >>>>>>> > prop1 = value >>>>>>> > } >>>>>>> > >>>>>>> > Essentially, this construct would introduce a level of lexical scope >>>>>>> > — explicitly controlled by the programmer, in addition to the >>>>>>> > implicit scope dictated by statement blocks, closures and self. >>>>>>> > >>>>>>> > The advantage of this construct is that it allows one to remove >>>>>>> > boilerplate code for initialisation/configuration as well as adds >>>>>>> > clear logical separation to the code. Disadvantage is potential >>>>>>> > shadowing of identifiers in the scope, but this should to be a big >>>>>>> > issue because the syntax is explicit rather then implicit, meaning >>>>>>> > that its the programmers job to make sure that no shadowing occurs >>>>>>> > (btw, compiler could warn about shadowing). The additions to the >>>>>>> > language syntax is minimal and the implementation should be >>>>>>> > straightforward (its essentially the same logic as for self). >>>>>>> > >>>>>>> > Note that this proposal is close to the discussion about popular the >>>>>>> > implicit self on this mailing list. A body of any method could be >>>>>>> > understood as wrapped into an implicit >>>>>>> > >>>>>>> > do with self {} >>>>>>> > >>>>>>> > Finally, this construct exists in a very similar form in Pascal (no >>>>>>> > idea if Wirth was inspired by some other feature or not here) and is >>>>>>> > also present in a bunch of languages that have dynamic scope. >>>>>>> > Personally, I use it all the time in R and I am loving it. >>>>>>> > >>>>>>> > If the community thinks this could be a nice addition to the >>>>>>> > language, I am ready to draft a proposal. Also, apologies if this has >>>>>>> > been suggested before — it is impossible to keep up with this list. >>>>>>> > >>>>>>> > Best, >>>>>>> > >>>>>>> > Taras >>>>>>> > _______________________________________________ >>>>>>> > swift-evolution mailing list >>>>>>> > swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>>>>>> > https://lists.swift.org/mailman/listinfo/swift-evolution >>>>>>> > <https://lists.swift.org/mailman/listinfo/swift-evolution> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> swift-evolution mailing list >>>>>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>>>>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>>>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >>>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> swift-evolution mailing list >>>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>>>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >>>> _______________________________________________ >>>> swift-evolution mailing list >>>> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>>> <https://lists.swift.org/mailman/listinfo/swift-evolution> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution