<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=""><div class="">I have one comment (below) about this part:</div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 2, 2016, at 18:59, Paul Cantrell via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><div class=""><div class=""><br class="">I have reservations about this. It doesn’t generalize perfectly well:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>a.tracksHavingMediaType("Wax Cylinder”, andPianist: “Brahms”)<br class=""><br class="">…strikes me as awkward compared to one of these:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>a.tracksHaving(mediaType: "Wax Cylinder”, pianist: “Brahms”)<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>// or <br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>a.tracksMatchingCriteria(mediaType: "Wax Cylinder”, pianist: “Brahms”)<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>// or even<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>a.tracks(mediaType: "Wax Cylinder”, pianist: “Brahms”)<br class=""><br class="">…especially since, in a method of that form, _all_ the arguments are likely to have a default value of nil:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>a.tracks(mediaType: "Wax Cylinder”)<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>a.tracks(pianist: “Brahms”)<br class=""></div></div></blockquote></div><br class=""><div class="">I prefer the original:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">a.tracksHavingMediaType(</span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Wax Cylinder"</span><span style="font-variant-ligatures: no-common-ligatures" class="">, andPianist: </span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Brahms”</span><span style="font-variant-ligatures: no-common-ligatures" class="">)</span></div></div></blockquote><div style="margin: 0px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">to any of these,</span></div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo;" class=""><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">a.tracksHaving(mediaType: </span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Wax Cylinder"</span><span style="font-variant-ligatures: no-common-ligatures" class="">, pianist: </span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Brahms"</span><span style="font-variant-ligatures: no-common-ligatures" class="">)</span></div></div></div><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo;" class=""><div style="margin: 0px; line-height: normal; color: rgb(42, 126, 49);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">// or</span></div></div></div><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo;" class=""><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">a.tracksMatchingCriteria(mediaType: </span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Wax Cylinder"</span><span style="font-variant-ligatures: no-common-ligatures" class="">, pianist: </span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Brahms"</span><span style="font-variant-ligatures: no-common-ligatures" class="">)</span></div></div></div><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo;" class=""><div style="margin: 0px; line-height: normal; color: rgb(42, 126, 49);" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">// or even</span></div></div></div><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo;" class=""><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">a.tracks(mediaType: </span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Wax Cylinder"</span><span style="font-variant-ligatures: no-common-ligatures" class="">, pianist: </span><span style="font-variant-ligatures: no-common-ligatures; color: #9d211a" class="">"Brahms”</span><span style="font-variant-ligatures: no-common-ligatures" class="">)</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div></div></div></blockquote><div class=""><div style="margin: 0px; line-height: normal;" class=""><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">Because to me, the 3 alternatives, especially the last one, all read more like hashmap accesses than method calls. In other words, they make it appear as if you are passing in arbitrary keys to be queried, rather than calling one specific method.</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">Matt</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""> </span></div></div></div></body></html>