For integers, 0 is an additive identity. Is there a reason it should be given special treatment over 1, the multiplicative identity? Historically the only reason is because it has the all-clear bit pattern.
Mathematically, identities are associated with (type, operation) pairs, not types alone. This conversation has put me in the column of "numeric types shouldn't have default initializers at all", personally. On Mon, Dec 26, 2016 at 11:27 AM Adam Nemecek via swift-evolution < [email protected]> wrote: > The elements already have an Identity, the one that you get when you > invoke the default constructor. It's 0 for Int, "" for String. > > On Mon, Dec 26, 2016 at 11:24 AM, David Sweeris <[email protected]> > wrote: > > > On Dec 26, 2016, at 11:12, Tino Heth via swift-evolution < > [email protected]> wrote: > > There is an older discussion that is somewhat linked to this topic: > "Removing the empty initialiser requirement from > RangeReplaceableCollection" > > https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160704/023642.html > > Imho "DefaultConstructible" types can be very handy, but so far, it seems > no one has presented a single use case that is important enough to justify > the inclusion in the stdlib. > On the other hand, I'm quite sure that there's much functionality in the > stdlib that many people consider as superfluous… > > I guess adding the protocol wouldn't have a big impact on size, so for for > me, the question is "Does this protocol confuse users of Swift?", which I'd > answer with "yes, possibly" (unless someone comes up with a name that is > more intuitive). > > > "Identity", but, at least for many numeric types, you'd need a mechanism > for specifying which one you mean. > > - Dave Sweeris > > > _______________________________________________ > 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
