Anterior: , Subir: opsubst   [Índice general][Índice]

68.1 Funciones y variables para opsubst

Función: opsubst (f,g,e)
Función: opsubst (g=f,e)
Función: opsubst ([g1=f1,g2=f2,..., gn=fn],e)

La función opsubst es similar a la función subst, excepto por el hecho de que opsubst tan solo hace sustituciones de operadores en las expresiones. En general, si f es un operador en la expresión e, lo cambia por g en la expresión e.

Para determinar el operador, opsubst asigna a inflag el valor true, lo cual significa que opsubst sustituye el operador interno de la expresión, no el mostrado en la salida formateada.

Ejemplo:

(%i1) load ("opsubst")$

(%i2) opsubst(f,g,g(g(x)));
(%o2)                     f(f(x))
(%i3) opsubst(f,g,g(g));
(%o3)                       f(g)
(%i4) opsubst(f,g[x],g[x](z));
(%o4)                       f(z)
(%i5) opsubst(g[x],f, f(z));
(%o5)                      g (z)
                            x
(%i6) opsubst(tan, sin, sin(sin));
(%o6)                     tan(sin)
(%i7) opsubst([f=g,g=h],f(x));
(%o7)                       h(x)

Internamente, Maxima no hace uso de los operadores de negación unaria, de división ni de la resta, por lo que:

(%i8) opsubst("+","-",a-b);
(%o8)                     a - b
(%i9) opsubst("f","-",-a);
(%o9)                      - a
(%i10) opsubst("^^","/",a/b);
                             a
(%o10)                       -
                             b

La representación interna de -a*b es *(-1,a,b), de modo que

(%i11) opsubst("[","*", -a*b);
(%o11)                  [- 1, a, b]

Si alguno de los operadores no es un símbolo de Maxima, se emitirá un mensaje de error:

(%i12) opsubst(a+b,f, f(x));

Improper name or value in functional position:
b + a
 -- an error.  Quitting.  To debug this try debugmode(true);

Sin embargo se permiten operadores subindicados:

(%i13) opsubst(g[5],f, f(x));
(%o13)                     g (x)
                            5

Antes de hacer uso de esta función ejecútese load("opsubst").


Anterior: , Subir: opsubst   [Índice general][Índice]