A little challenge...

Don nospam at nospam.com
Fri Feb 26 03:13:02 PST 2010


Norbert Nemec wrote:
> Jason House wrote:
>> Would sum!( "i", "a[i]*b[i]" ) be acceptable? That should be 
>> achievable with a template mixin that does string mixins under the hood.
> 
> It is indeed a solution for the problem, but I still don't like it too 
> much. For one, writing expressions as strings always feels awkward. Even 
> though D can handle these strings at compile time, it just doesn't feel 
> like writing native D code.
> 
> Beyond this "gut feeling" I also see two technical problems:
> 
> * code editors do not recognize the string content as code, so they 
> cannot offer syntax highlighting or more advanced language tools

You can use the q{ } string syntax.

> * the syntax does not allow nesting:
> 
>     sum(i)( a[i] * sum(j)(b[i,j]*c[j]) )

This is a much bigger problem. It's not too difficult if you allow only 
a set of built-in operations, but if you allow user-defined operations, 
it's tough.

Template alias parameters have got much more powerful since I wrote 
BLADE, so maybe it's more feasible now.



More information about the Digitalmars-d mailing list