To see a macro that does this sort of thing, look into the code for DataArrays, 
specifically src/operators.jl.

 -- John

On Feb 12, 2014, at 7:39 AM, Cristóvão Duarte Sousa <[email protected]> wrote:

> Hi,
> 
> I'll put this as an example to better explain myself.
> In complex.jl there are these two lines:
>     ==(z::Complex, x::Real) = isreal(z) && real(z) == x
>     ==(x::Real, z::Complex) = isreal(z) && real(z) == x
> 
> Is there some "standard" macro to apply to definitions of functions which 
> have the same behavior independently of arguments order?
> Something like a `@withsymm` macro which can be used as
>     @withsymm ==(z::Complex, x::Real) = isreal(z) && real(z) == x
> and expands to the two lines above.
> Or even maybe to
>     ==(z::Complex, x::Real) = isreal(z) && real(z) == x
>     ==(x::Real, z::Complex) = ==(z, x)
> 
> If not, have you considered (and maybe discarded) the possibility of using 
> such macro?
> 

Reply via email to