On Saturday, 28 December 2013 at 20:06:46 UTC, H. S. Teoh wrote:
On Sat, Dec 28, 2013 at 07:35:00PM +0100, Joseph Rushton Wakeling wrote:
On 28/12/13 18:50, John Colvin wrote:
>how about:
>
>a.elementWise * b
>
>where a.elementWise returns a wrapper struct around a that >implements
>elementwise arithmetic as opposed to the normal arithmetic.
>
>The operators would return instances of Matrix, not >elementWise, to >avoid accidentally spilling a Matrix.ElementWise struct in to >ensuing
>code unintentionally. With a shorter alias it's rather neat.
>
>auto e = ((a .EW* b) .EW/ c ) * d;

That's a rather cool idea -- thanks for that! :-)

That said, I think it'd be difficult to really justify it as a
pattern for general use. If you're doing mathematical work à la MATLAB, you want a proper operator, not a trick which lets you sort
of write something that looks a little like one.  I'm a little
disappointed there's no ready way to do this :-(

The other way is to use a compile-time DSL, which lets you implement
whatever operators you want in whatever syntax you fancy.


T

Yeah. To risk being glib, if you want a domain specific language, use a domain specific language.

Then again, including some convenient abstraction for some common tasks while remaining within the main language is nice.

Reply via email to