Paul Abbott wrote:
>
> Finally, what is the application? There are possibly other better ways
> to approach such problems.
>
Thanks again for the responses.
I have to say that I was searching for a single pattern to match
both the cases just for elegance, not for strict need.
Anyway the particular problem I'm dealing with is somewhat unnatural:
I am working with HoldForms, say:
holdTimes[x_,y_]:=HoldForm[x y]
so that
holdTimes[3,-2] returns
3 (-2)
but what I am particularly interested in is that the product x y is
not evaluated, while the sign of the operation can be resolved
(this to avoid situations like -(-(-(-(.... ).
So I would like holdTimes to behave like
holdTimes[3,-2]
=
-(3 2)
and
holdTimes[-3,-a]
=
3 a
Unfortunately the definitions
holdTimes[-x_,-y_]:=holdTimes[x,y]
holdTimes[-x_,y_]:=-holdTimes[x,y]
holdTimes[x_,-y_]:=-holdTimes[x,y]
holdTimes[x_,y_]:=holdForm[x y]
don't work, as
holdTimes[3, -4]
=
3 (-4)
and
holdTimes[-3,-4]
=
-3 (-4)
but notice that
holdTimes[-a, -b]
=
a b
--
Paolo
pauldj at cs.utexas.edu paolo.bientinesi at iit.cnr.it