opPow, opDollar
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sat Nov 7 10:37:33 PST 2009
Walter Bright wrote:
> KennyTM~ wrote:
>> Nice. Meanwhile, I'd like an opSum() operator (∑ range) as well. It's
>> primarily about syntax sugar: reduce!("a+b")(range) is so ugly. In
>> practice, the most important case is the sum from 1 to n, which is an
>> extremely common operation. reduce!("a+b")(iota(1,n+1)) is horribly
>> ugly for something so fundamental. It's so ugly that noone uses it:
>> you always change it to n*(n+1)/2. But then, n gets evaluated twice.
>
> As amply illustrated, one can make this argument pro and con about any
> builtin operator. The waterfront real estate of builtin operators is
> extremely limited, so we need to be very parsimonious in allocating it.
> Candidates for builtin operators need to have a very high bar.
>
> The question is, does ^^ clear that bar or not?
In order for everyone to air an informed opinion, a related question is:
will loop fusion be allowed with function calls?
Loop fusion currently only works with operators, and adding ^^ would allow:
a[] = b[] ^^ 3;
But with pow you can't do that:
a[] = pow(b[], 3);
Andrei
P.S. FWIW, I'm ambivalent on the issue; if functions were allowed for
automatic loop fusion that would tilt my opinion in disfavor of ^^, and
if not, it would tilt my opinion in favor of ^^.
More information about the Digitalmars-d
mailing list