<div style="white-space:pre-wrap">I applaud honest description of drawbacks in the proposal :) <br><br>There examples given, I think, demonstrate that using self without any special access leads to unresolvable ambiguities. <br><br>If one wants to work "inside" the configured object, this seems like a good job for a private initializer. All of the ambiguities will be resolved, because extracting the init away removes its ability to capture names from the local context. <br><br>Alternatively, I think it makes sense to continue working on configuration syntax, with "default" access to local context and "explicit" access to the object. Let's just replace $0 with something else. <br><br>Hopefully I don't sounds too pessimistic. Erica's proposal looks going in the right direction to me. <br></div><div class="gmail_quote"><div dir="ltr">On Sun, Dec 6, 2015 at 23:30 Erica Sadun via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>It's probably better at this point for me to collect my thoughts and summarize where I am at.</div><div><br></div><div><a href="https://gist.github.com/erica/eb32feb22ba99629285a" target="_blank">https://gist.github.com/erica/eb32feb22ba99629285a</a></div><div><br></div><div>Please feel free to comment on-list about this proposal (github does not forward comment alerts) and</div><div>then I will start a new list thread as a Proposal rather than as a Request for Discussion.</div><div><br></div><div>Best,</div><div><br></div><div>-- E</div></div><div style="word-wrap:break-word"><div><br></div><br><div><blockquote type="cite"><div>On Dec 6, 2015, at 12:45 PM, ilya <<a href="mailto:ilya.nikokoshev@gmail.com" target="_blank">ilya.nikokoshev@gmail.com</a>> wrote:</div><br><div><div dir="ltr">Sorry, did I misunderstand the question? <div><br></div><div>Did you asked whether my definition will work for immutable value types? </div><div>If that's the question, the answer is still yes, the link has an example :) </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 6, 2015 at 10:43 PM, Erica Sadun <span dir="ltr"><<a href="mailto:erica@ericasadun.com" target="_blank">erica@ericasadun.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>I was specifically referring to value types. I apologize for not being clearer.</div><span><font color="#888888"><div><br></div><div>-- E</div></font></span><div><div><div><br></div><br><div><blockquote type="cite"><div>On Dec 6, 2015, at 12:42 PM, ilya <<a href="mailto:ilya.nikokoshev@gmail.com" target="_blank">ilya.nikokoshev@gmail.com</a>> wrote:</div><br><div><div dir="ltr">Yes, it works for immutable objects with the correct definition, see the playground contents at <a href="https://github.com/ilyannn/iOS-Swift-Materials/blob/master/Playgrounds/Configure.playground/Contents.swift" target="_blank">https://github.com/ilyannn/iOS-Swift-Materials/blob/master/Playgrounds/Configure.playground/Contents.swift</a></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 6, 2015 at 8:10 PM, Erica Sadun <span dir="ltr"><<a href="mailto:erica@ericasadun.com" target="_blank">erica@ericasadun.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>I have developed something similar as well (<a href="http://ericasadun.com/2015/11/15/speeding-up-swift-playgrounds-with-closure-initialization-swiftlang/" target="_blank">http://ericasadun.com/2015/11/15/speeding-up-swift-playgrounds-with-closure-initialization-swiftlang/</a>).</div><div><br></div><div>Is yours capable of handling enums and structs that would otherwise be let after declaration because mine is not.</div><span><font color="#888888"><div><br></div><div>-- E</div><div><br></div><br></font></span><div><blockquote type="cite"><div><div><div>On Dec 5, 2015, at 5:16 PM, ilya via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:</div><br></div></div><div><div><div><div dir="ltr">> PROBLEM: With many Apple-supplied classes, typical initializers fail to fully set up an instance for use. Here's one example: ...<div><br></div><div>FWIW, I created a configuration operator more then a year ago, and use it in all of my Swift projects:</div><div><br></div><div><div>let task = NSTask() +=+ {</div><div> $0.launchPath = "/usr/bin/mdfind"</div><div> $0.arguments = ["kMDItemDisplayName == *.playground"]</div><div> $0.standardOutput = pipe</div><div>}</div><div><br></div><div>Note you can also use the configured object in the rhs:</div><div><br></div><div><div>let questionLabel = UILabel() +=+ {</div><div> $0.textAlignment = .Center</div><div> $0.font = UIFont(name:"DnealianManuscript", size: 72)</div><div> $0.text = currentQuestion.questionText</div><div> $0.numberOfLines = 0</div></div><div> view.addSubview($0)</div><div>}</div><div><br></div></div><div>This $0. certainly looks ugly and it would be great to be able to simplify this. I don't llike the following much though (dot-syntax can be ambiguos here, and using simply a method name is even worse):</div><div><br></div><div><div>let questionLabel = UILabel() +=+ {</div><div> .textAlignment = .Center</div><div> .font = UIFont(name:"DnealianManuscript", size: 72)</div><div> .text = currentQuestion.questionText</div><div> .numberOfLines = 0</div><div> view.addSubview($0)</div><div>}</div></div><div><br></div><div>Actually I would be happy with something like</div><div><br></div><div><div>let questionLabel = UILabel() .{</div><div> ..textAlignment = .Center</div><div> ..font = UIFont(name:"DnealianManuscript", size: 72)</div><div> ..text = currentQuestion.questionText</div><div> ..numberOfLines = 0</div><div> view.addSubview($0)</div><div>}</div></div><div><br></div><div>Other thoughts?</div><div><br></div><div> </div></div>
</div></div><span><img src="https://u2002410.ct.sendgrid.net/wf/open?upn=r5jpKsi6nat7oa43lpCLi5GRGm2utDkbDscuFklXZ2cxud9iRxsZ36zHq7XlPj9-2BOixzAQAUIKv817EfMPap26bUo4Vp7fmXyVAk3kGoXDFbxviOOjJN4IhLbXEbLBgeaEWnLntESKUKKtxs15npR33Hf0fzcj0YKh4IB-2BoUKA5SrRpArMzvl2386L5kt-2Bch5TR24-2FB9K3KdjUboRdcES55hY7En6zqMtl7SJ055yJM-3D" alt="" width="1" height="1" border="0" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important">
_______________________________________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></span></div></blockquote></div><br></div></blockquote></div><br></div>
</div></blockquote></div><br></div></div></div></blockquote></div><br></div>
</div></blockquote></div><br>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=1p9Jer2O6jVE9KWvo-2B9iUaEyN8slp4IizyiLwsfp54OfRrvQaqd2xia8dG1-2BVn5WvM90J86tG6uUixundnyEMfUtDUgGlwaoXJ3b4SU4pyN-2FYJjmL-2FT-2Fm-2FUmCeb7arT-2FR4XQQxQEDhEwRxoWqKm69s7-2Byob8G79LYwjtqS6jpJDkVaVEMlrwU1wge1pKq9o4iE3Qef7C-2FLE4kqEFVlmN1zIgU-2FAfQxUqPRdHufxHmH0-3D" alt="" width="1" height="1" border="0" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important">
</div>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>