I think you want

quote
     @M($i,$j, $ε1, ....)
end

in order for your L macro to return an expression (that in turn calls the M 
macro).

Macros are not functions.  When you call @M(i,j,...), it doesn't pass the 
*value* of the arguments i,j, etcetera, it passes the symbolic expressions 
:i, :j, and so on.

Of course, if you are only calling M from inside another macro, it is 
perfectly valid to just change M from a macro to an ordinary function 
(returning an expression) ... just change "macro" to "function" in the 
definition of M, and call it without the "@" inside L.

Reply via email to