Clay language

so so at so.do
Thu Dec 30 14:03:05 PST 2010


> 	?? The only type in this list without a division operator is vector
> all the others have it.

Matrix matrix, matrix vector, vector matrix division also not defined,  
there is one syntactic similarity but it is not division.
Didn't give much of a thought to others since vector, matrix and scalar  
operations takes already quite a bit space.

> 	I'm sorry? What do you call the "generic case" here? All this list
> shows is that each operator needs to be implemented individually
> anyway. Andrei's point was exactly the reverse: he claims that most
> operators can be implemented in groups which clearly isn't the case

I don't agree, majority of the cases you duplicate almost all of the code  
and just change the operator. That was the thing i meant with "generic  
case".
If i wasn't clear, say:

vector opBinary(string op)(scalar s) if(op == "+" || op == "-" ....) {
	static if(op == "/")
		return general("*")(1/s); // particular case
	else
		return general(op)(s); // general case, just a one-liner mixin
}

vector opBinary(string op)(vector v) if(op == "+" || op == "-" ....) {
	return general(op)(v); // again, just a one-liner mixin
}

Same goes for matrix, particular case being the multiplication.

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/


More information about the Digitalmars-d mailing list