Jarrett Billingsley wrote:
On Sun, Dec 28, 2008 at 11:50 AM, Don<[email protected]>  wrote:

So, please post any use cases which you consider convincing.

Virtually all I use it for is making containers.  I do almost no
numerical programming.  I would probably not miss much if all I could
overload were opIndex[Assign], opSlice[Assign], opCat[Assign], and
opApply.

As you've noted before, overloading of the arithmetic operators isn't
useful when you only have access to two operands.  It seems like an
AST transformation (macros!) on mathematical transformations into
possibly-compound operations would be much more useful than plain old
operator overloading.  We're already forced to use expression
templates to do anything useful with operator overloading; why not put
a more general, efficient, concise form of that in the language
itself?

could you please elaborate on this, and/or provide a code example?

Also, just wanted to mention that other languages provide similar concepts but with slightly different mechanisms - for example, scala allows to declare a function with two parameters as an infix function, this idea is also present in functional languages like ML. So my question therefore is: what are the pros/cons of limiting this to already existing operators in the language (similar to C++) vs. allow any kind of symbol and/or function name?

Downs uses his famous operand1 /func/ operand2 pattern, for example with a map function. Should D support this in the language?

Reply via email to