Hello,

I have a type M and I would like to redefine all the operations *, +, -, / 
etc. over it. Since it would be everytime the same operations and since I 
want my code to be concise I thought about using a macro to define them, 
such as:

type M
    a
    b
end

macro operator_obs(name)
    return quote
        function $name(m1::M, m2::M)
            return M($name(m1.a, m2.a), $name(m1.b, m2.b))
        end
    end
end

@operator_obs(+)

m1 = M(2.0,3.0)
m2 = M(4.0,5.0)

+(m1, m2)

But this doesn't seem to work. What did I do wrong?

Many thanks,

Reply via email to