Rename specvar integer-info to *integer-info*
[maxima.git] / doc / info / es / opsubst.texi
blobbf10a0d36bac3b4b25cd4c5a08f9afdfacb7f45f
1 @c English version: 2008-03-28
2 @menu
3 * Funciones y variables para opsubst::
4 @end menu
6 @node Funciones y variables para opsubst,  , opsubst, opsubst
7 @section Funciones y variables para opsubst
10 @deffn {Función} opsubst (@var{f},@var{g},@var{e})
11 @deffnx {Función} opsubst (@var{g}=@var{f},@var{e})
12 @deffnx {Función} opsubst ([@var{g1}=@var{f1},@var{g2}=@var{f2},..., @var{gn}=@var{fn}],@var{e})
13 La función @code{opsubst} es similar a la función @code{subst},
14 excepto por el hecho de que @code{opsubst}  tan solo hace sustituciones
15 de operadores en las expresiones. En general, si @var{f} es un operador en
16 la expresión @var{e}, lo cambia por @var{g} en la expresión @var{e}.
18 Para determinar el operador, @code{opsubst} asigna a @code{inflag} 
19 el valor @code{true}, lo cual significa que @code{opsubst} sustituye
20 el operador interno de la expresión, no el mostrado en la salida
21 formateada.
23 Ejemplo:
24 @example
25 (%i1) load ("opsubst")$
27 (%i2) opsubst(f,g,g(g(x)));
28 (%o2)                     f(f(x))
29 (%i3) opsubst(f,g,g(g));
30 (%o3)                       f(g)
31 (%i4) opsubst(f,g[x],g[x](z));
32 (%o4)                       f(z)
33 (%i5) opsubst(g[x],f, f(z));
34 (%o5)                      g (z)
35                             x
36 (%i6) opsubst(tan, sin, sin(sin));
37 (%o6)                     tan(sin)
38 (%i7) opsubst([f=g,g=h],f(x));
39 (%o7)                       h(x)
40 @end example
42 Internamente, Maxima no hace uso de los operadores de negación unaria,
43 de división ni de la resta, por lo que:
44 @example
45 (%i8) opsubst("+","-",a-b);
46 (%o8)                     a - b
47 (%i9) opsubst("f","-",-a);
48 (%o9)                      - a
49 (%i10) opsubst("^^","/",a/b);
50                              a
51 (%o10)                       -
52                              b
53 @end example
55 La representación interna de -a*b es *(-1,a,b), de modo que
56 @example
57 (%i11) opsubst("[","*", -a*b);
58 (%o11)                  [- 1, a, b]
59 @end example
61 Si alguno de los operadores no es un símbolo de Maxima,
62 se emitirá un mensaje de error:
63 @example
64 (%i12) opsubst(a+b,f, f(x));
66 Improper name or value in functional position:
67 b + a
68  -- an error.  Quitting.  To debug this try debugmode(true);
69 @end example
71 Sin embargo se permiten operadores subindicados:
72 @example
73 (%i13) opsubst(g[5],f, f(x));
74 (%o13)                     g (x)
75                             5
76 @end example
78 Antes de hacer uso de esta función ejecútese  @code{load("opsubst")}.
79 @end deffn