> On May 26, 2016, at 4:23 PM, Dave Abrahams via swift-evolution > <[email protected]> wrote: > > > on Tue May 24 2016, Nate Cook <[email protected]> wrote: > >>> On May 24, 2016, at 7:43 AM, Matthew Johnson via swift-evolution >>> <[email protected]> wrote: >>> >>> Sent from my iPad >>> >>>> On May 24, 2016, at 12:59 AM, Brent Royal-Gordon via swift-evolution >>>> <[email protected]> wrote: >>> >>> >>>>> I have a small remark though, wouldn’t it be better to let transform be >>>>> of type (Key, Value) throws -> T instead of (Value) throws -> T? You can >>>>> just ignore the key (with _) if you don’t need it, but I think it might >>>>> come in handy in some cases. >>>> >>>> The problem is, that closes the door to writing many simple maps in >>>> functional style. For instance, this: >>>> >>>> dictionaryOfNumbers.mapValues(abs) >>>> >>>> Would have to become this: >>>> >>>> dictionaryOfNumbers.mapValues { _, v in abs(v) } >>>> >>>> (It *might* be possible to do it with `$1`, but I'm not sure; there are >>>> some limitations around that.) >>>> >>>> A value-value map is just simpler and cleaner, while almost always giving >>>> you what you need. >>> >>> +1. >>> >>> I don't think I have ever mapped keys. Incidentally, that doesn't have the >>> usual semantics of a map operation as you can produce duplicate keys. >> >> I think this conversation suffers from not knowing whether Dictionary >> is going to receive a sequence-based initializer. There's been a >> proposal for that in the PR queue for quite a while. Could someone in >> the core team please either merge or close that proposal? >> >> https://github.com/apple/swift-evolution/pull/125 > > Done. I was just waiting until we could assign it SE-0100. > Congratulations! ;-)
💯😂 >> If there's no sequence-based init, mapValues should probably produce a >> new Dictionary. If there is, having mapValues produce a dictionary >> would be redundant. I'd rather see a MapDictionary type that wraps a >> dictionary and only evaluates the transformation on access, rather >> than eagerly allocating storage and performing all the >> transformations. >> >> You can take a look at a rudimentary MapDictionary in this gist: >> https://gist.github.com/natecook1000/7cfc5c04f18237066f7aca6e9658f276 >> >> Best, >> Nate >> >>>> -- >>>> Brent Royal-Gordon >>>> Architechies >>>> >>>> _______________________________________________ >>>> swift-evolution mailing list >>>> [email protected] >>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>> >>> _______________________________________________ >>> swift-evolution mailing list >>> [email protected] >>> https://lists.swift.org/mailman/listinfo/swift-evolution >> >> _______________________________________________ >> swift-evolution mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution > > -- > Dave > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
