|
On 29/06/2011 18.09, steve donovan wrote:
On Wed, Jun 29, 2011 at 5:48 PM, Lorenzo Donati <lorenzodonatibz@interfree.it> wrote:For example, consider math vectors: W = V1 :x: V2 + V3 W = V1:cross_product(V2) + V3 -- less readableOK, good one. But you could overload ^ for that, and * for dot product. (And % is also available)
Oh yes. I did it sometimes.
True, :x: is cute. To answer your question, one thing that LuaMacro can not do is parse infix expressions. You could define ':x:' as a lexical token and replace it by '%', that kind of thing. But for such a simple step, gsub is your friend ;)
Yes. I also read the stuff about "pseudo-custom" operators in the WIKI with all those tricks with higher order functions to capture arguments and the like.
I use those tricks sometimes, but to tame the syntax of a DSL, but not for custom operators, since they are too ugly anyway.
With gsub the problem begin when mixing prefix/postfix/infix operators and when the expression gets complex (just where a custom math-dsl should help!), so I never pushed it too far.
steve d.
-- Lorenzo