food for thought - swift 5 released - bottom types, string interpolation, and stuff.
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sat Apr 13 10:51:46 UTC 2019
On 4/13/19 3:04 AM, Julian wrote:
> On Saturday, 13 April 2019 at 04:40:08 UTC, Walter Bright wrote:
>> On 4/12/2019 9:15 PM, Nick Sabalausky (Abscissa) wrote:
>>> If for you, they're the same level of abstraction, that's great. For
>>> most, it isn't.
>>
>> If you want to write a library of such, and contribute it to Dub, feel
>> free. If you find an audience for it, great.
>
> Done: https://code.dlang.org/packages/isodd
That we got to this kind of time investment is worrisome. There's so
many places where work needs to go, and this is at the very best of
negligible impact.
Ironically isOdd and isEven were not approved for Swift - see
Implementation Notes. Instead, the only nontrivial function isMultiple
was approved:
bool isMultiple(T)(T isThisMultiple, T of)
if (isIntegral!T)
{
if (isThisMultiple == 0) return true;
if (of == 0) return false;
static if (T.min < 0)
if (isThisMultiple == T.min && of == -1) return true;
return isThisMultiple % of == 0;
}
Such a function has some subtleties and corner cases that even seasoned
programmers can get wrong. It can't be reasonably written as inlined
code. I find its presence in a language's standard library reasonable.
If isMultiple were proposed for Phobos, the argument should be centered
on frequency of use. It does happen that such queries appear with a
constant on the right (e.g. a power of two) but general queries for
arbitrary integers are rare.
More information about the Digitalmars-d
mailing list