a-b is, internally more like
a + (-1)* b
so there is no "-" operator.
RJF
laurent couraud wrote:
> Hello all,
>
> I want to replace in an expression the minus sign by the plus sign.
> But I can do that with subst("+", "-", expr).
> I don't have found the way to do that with map function.
>
> In fact the final goal is to compute the number of atom in an EXPANDed form of expression.
>
> To do that I have tried:
>
> ONE(EXPR):=BLOCK(
> MODE_DECLARE(EXPR,ANY),
> IF NUMBERP(EXPR) THEN RETURN(EXPR),
> IF ATOM(EXPR) THEN RETURN(1)
> );
>
> /*
> * Calcule le nombre d'atome dans la forme
> * EXPANDed de l'expression.
> *
> */
> NATOMS(EXPR):=BLOCK(
> [EXPR1],
> MODE_DECLARE([EXPR,EXPR1],ANY),
> IF EXPR=0 THEN RETURN(0),
> IF ATOM(EXPR) THEN RETURN(1),
> EXPR1:SUBST("+", "-", EXPR),
> EXPR1:SUBST("+", "*", EXPR1),
> EXPR1:SUBST("*", "^", EXPR1),
> MAP(ONE,EXPR1)
> );
>
> Thanks for your help.
>
> Laurent.
>
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima