<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I like the proposal. I think it’s simple and straight forward and provides some really nice ergonomics for working with dynamic data.<div class=""><br class=""></div><div class="">I appreciate the option to change the names too.</div><div class=""><br class=""></div><div class="">If I understand it correctly, you could also call “add_trick” via:</div><div class=""><br class=""></div><div class=""><font face="Menlo" class="">dog.addTrick("Roll over");</font></div><div class=""><br class=""></div><div class="">And simply update the subscript implementation to provide additional name look-ups. Cool!</div><div class=""><br class=""></div><div class="">And I like that the DynamicCallable provides the next level that I want to make the API more “Swift-like” and make use of named parameters:</div><div class=""><br class=""></div><div class=""><div class=""><font face="Menlo" class="">dog.add(trick: "Roll over");</font></div></div><div class=""><div class="">

</div>
<div><br class=""></div><div>Or maybe more appropriate:</div><div><br class=""></div><div><div class=""><font face="Menlo" class="">dog.addTrick("Roll over”, favorite: true);</font></div><div class=""><font face="Menlo" class=""><br class=""></font></div></div><div>I didn’t look at the implementation details, but I think the overall approach. I’d like it better if we have provisions to create these types of tools outside of the compiler, but that’s another topic.</div><div><br class=""></div><div>-David</div><div><br class=""><blockquote type="cite" class=""><div class="">On Nov 26, 2017, at 10:04 PM, Chris Lattner 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=""><div class="">I’d like to formally propose the inclusion of user-defined dynamic member lookup types.<br class=""><br class="">Here is my latest draft of the proposal:<br class=""><a href="https://gist.github.com/lattner/b016e1cf86c43732c8d82f90e5ae5438" class="">https://gist.github.com/lattner/b016e1cf86c43732c8d82f90e5ae5438</a><br class="">https://github.com/apple/swift-evolution/pull/768<br class=""><br class="">An implementation of this design is available here:<br class="">https://github.com/apple/swift/pull/13076<br class=""><br class="">The implementation is straight-forward and (IMO) non-invasive in the compiler.<br class=""><br class="">-Chris<br class=""><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class="">swift-evolution@swift.org<br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></div></blockquote></div><br class=""></div></body></html>