1
@c english version 1.41
3
* Introducci@'on a la L@'{@dotless{i}}nea de Comandos::
4
* Definiciones para la L@'{@dotless{i}}nea de Comandos::
7
@node Introducci@'on a la L@'{@dotless{i}}nea de Comandos, Definiciones para la L@'{@dotless{i}}nea de Comandos, L@'{@dotless{i}}nea de Comandos, L@'{@dotless{i}}nea de Comandos
9
@section Introducci@'on a la L@'{@dotless{i}}nea de Comandos
12
@c THIS ITEM IS VERY IMPORTANT !!
16
El operador comilla sencilla @code{'} evita la evaluaci@'on.
18
Aplicado a un s@'{@dotless{i}}mbolo,
19
la comilla sencilla evita la evaluaci@'on del s@'{@dotless{i}}mbolo.
21
Aplicado a la llamada de una funci@'on,
22
la comilla sencilla evita la evaluaci@'on de la funci@'on llamada,
23
aunque los argumentos de la funci@'on son evaluados (siempre y cuando
24
la evaluaci@'on no se evite de otra manera).
25
El resultado es una forma de nombre de la funci@'on llamada.
27
Aplicado a una expresi@'on con par@'entesis,
28
la comilla simple evita la evaluaci@'on de todos los s@'{@dotless{i}}mbolos y llamadas a funciones que hayan en la expresi@'on.
29
@c DUNNO IF THESE EXAMPLES ARE STILL NEEDED -- COVERED BY ITEMS UNDER "Examples"
30
E.g., @code{'(f(x))} significa que no se evalua la expresi@'on @code{f(x)}.
31
@code{'f(x)} (con la comilla simple aplicada a @code{f} en cambio de a @code{f(x)})
32
significa el retorno de la forma de nombre de @code{f} aplicada a @code{[x]}.
34
La comilla simple no evita la simplificaci@'on.
36
Cuando el interruptor global @code{noundisp} es @code{true},
37
los nombres se muestran con una comilla simple.
38
Este interruptor siempre tiene como valor @code{true} cuando
39
se muestran definiciones de funciones.
41
Ver tambi@'en los operadores comilla-comilla @code{''} y @code{nouns}.
45
Aplicado a un s@'{@dotless{i}}mbolo,
46
la comilla sencilla evita la evaluaci@'on del s@'{@dotless{i}}mbolo.
66
Aplicado a la llamada de una funci@'on,
67
la comilla sencilla evita la evaluaci@'on de la funci@'on llamada,
68
aunque los argumentos de la funci@'on son evaluados (siempre y cuando
69
la evaluaci@'on no se evite de otra manera).
70
El resultado es una forma de nombre de la funci@'on llamada.
75
@c integrate (x^2, x, x0, x1);
76
@c 'integrate (x^2, x, x0, x1);
84
(%i3) integrate (x^2, x, x0, x1);
88
(%i4) 'integrate (x^2, x, x0, x1);
102
Aplicado a una expresi@'on con par@'entesis,
103
la comilla simple evita la evaluaci@'on de todos los s@'{@dotless{i}}mbolos y llamadas a funciones que hayan en la expresi@'on.
119
(%i4) '(sqrt(aa) + bb);
125
La comilla sencilla no evita la simplificaci@'on.
128
@c sin (17 * %pi) + cos (17 * %pi);
129
@c '(sin (17 * %pi) + cos (17 * %pi));
132
(%i1) sin (17 * %pi) + cos (17 * %pi);
134
(%i2) '(sin (17 * %pi) + cos (17 * %pi));
141
El operador comilla-comilla @code{'@w{}'} (dos comillas simples) modifica la evaluaci@'on
142
en las expresiones de entrada.
144
Aplicado a cualquier expresi@'on general @var{expr}, las dos comillas simples hacen que
145
el valor de @var{expr} sea sustituido por @var{expr} en la expresi@'on de entrada.
147
Aplicado al operador de una expresi@'on, el operador comilla-comilla hace que el operador
148
pase de ser un nombre a ser un verbo, a menos que ya sea un verbo.
150
El operador comilla-comilla es aplicado por el analizador sint@'actico de entrada;
151
no se almacena como una parte de la expresi@'on de entrada analizada.
152
Este operador se aplica siempre tan pronto como es detectado y no puede ser comentado con
153
una comilla simple. De esta manera, el operador comilla-comilla provoca la evaluaci@'on de
154
una expresi@'on cuando @'esta no estaba previsto que fuese evaluada, como en la
155
definici@'on de funciones, expresiones lambda y expresiones comentadas con una comilla simple
158
El operador comilla-comilla es reconocido tanto por @code{batch} como por @code{load}.
160
V@'eanse tambi@'en el operador comilla simple @code{'} y @code{nouns}.
164
Aplicado a cualquier expresi@'on general @var{expr}, las dos comillas simples hacen que
165
el valor de @var{expr} sea sustituido por @var{expr} en la expresi@'on de entrada.
168
@c expand ((a + b)^3);
171
@c [aa : cc, bb : dd, cc : 17, dd : 29];
172
@c foo_1 (x) := aa - bb * x;
176
@c foo_2 (x) := ''aa - ''bb * x;
178
@c [x0 : x1, x1 : x2, x2 : x3];
184
(%i1) expand ((a + b)^3);
186
(%o1) b + 3 a b + 3 a b + a
189
(%o2) [expand((b + a) ), b + 3 a b + 3 a b + a ]
192
(%o3) [expand((b + a) ), b + 3 a b + 3 a b + a ]
193
(%i4) [aa : cc, bb : dd, cc : 17, dd : 29];
194
(%o4) [cc, dd, 17, 29]
195
(%i5) foo_1 (x) := aa - bb * x;
196
(%o5) foo_1(x) := aa - bb x
201
(%i8) ''(foo_1 (10));
203
(%i9) foo_2 (x) := ''aa - ''bb * x;
204
(%o9) foo_2(x) := cc - dd x
207
(%i11) [x0 : x1, x1 : x2, x2 : x3];
217
Aplicado al operador de una expresi@'on, el operador comilla-comilla hace que el operador
218
pase de ser un nombre a ser un verbo, a menos que ya sea un verbo.
223
@c declare (foo, noun);
224
@c foo (x) := x - 1729;
232
(%o2) 0.8414709848079
233
(%i3) declare (foo, noun);
235
(%i4) foo (x) := x - 1729;
236
(%o4) ''foo(x) := x - 1729
243
El operador comilla-comilla es aplicado por el analizador sint@'actico de entrada;
244
no se almacena como una parte de la expresi@'on de entrada analizada.
247
@c [aa : bb, cc : dd, bb : 1234, dd : 5678];
249
@c display (_, op (_), args (_));
251
@c display (_, op (_), args (_));
254
(%i1) [aa : bb, cc : dd, bb : 1234, dd : 5678];
255
(%o1) [bb, dd, 1234, 5678]
258
(%i3) display (_, op (_), args (_));
263
args(cc + aa) = [cc, aa]
268
(%i5) display (_, op (_), args (_));
273
args(dd + bb) = [dd, bb]
278
El operador comilla-comilla provoca la evaluaci@'on de
279
una expresi@'on cuando @'esta no estaba previsto que fuese evaluada, como en la
280
definici@'on de funciones, expresiones lambda y expresiones comentadas con una comilla simple
284
@c foo_1a (x) := ''(integrate (log (x), x));
285
@c foo_1b (x) := integrate (log (x), x);
286
@c dispfun (foo_1a, foo_1b);
287
@c integrate (log (x), x);
288
@c foo_2a (x) := ''%;
290
@c dispfun (foo_2a, foo_2b);
291
@c F : lambda ([u], diff (sin (u), u));
292
@c G : lambda ([u], ''(diff (sin (u), u)));
293
@c '(sum (a[k], k, 1, 3) + sum (b[k], k, 1, 3));
294
@c '(''(sum (a[k], k, 1, 3)) + ''(sum (b[k], k, 1, 3)));
297
(%i1) foo_1a (x) := ''(integrate (log (x), x));
298
(%o1) foo_1a(x) := x log(x) - x
299
(%i2) foo_1b (x) := integrate (log (x), x);
300
(%o2) foo_1b(x) := integrate(log(x), x)
301
(%i3) dispfun (foo_1a, foo_1b);
302
(%t3) foo_1a(x) := x log(x) - x
304
(%t4) foo_1b(x) := integrate(log(x), x)
307
(%i4) integrate (log (x), x);
309
(%i5) foo_2a (x) := ''%;
310
(%o5) foo_2a(x) := x log(x) - x
311
(%i6) foo_2b (x) := %;
313
(%i7) dispfun (foo_2a, foo_2b);
314
(%t7) foo_2a(x) := x log(x) - x
319
(%i8) F : lambda ([u], diff (sin (u), u));
320
(%o8) lambda([u], diff(sin(u), u))
321
(%i9) G : lambda ([u], ''(diff (sin (u), u)));
322
(%o9) lambda([u], cos(u))
323
(%i10) '(sum (a[k], k, 1, 3) + sum (b[k], k, 1, 3));
324
(%o10) sum(b , k, 1, 3) + sum(a , k, 1, 3)
326
(%i11) '(''(sum (a[k], k, 1, 3)) + ''(sum (b[k], k, 1, 3)));
327
(%o11) b + a + b + a + b + a
333
@node Definiciones para la L@'{@dotless{i}}nea de Comandos, , Introducci@'on a la L@'{@dotless{i}}nea de Comandos, L@'{@dotless{i}}nea de Comandos
335
@section Definiciones para la L@'{@dotless{i}}nea de Comandos
337
@c NEEDS WORK, ESPECIALLY EXAMPLES
338
@deffn {Funci@'on} alias (@var{new_name_1}, @var{old_name_1}, ..., @var{new_name_n}, @var{old_name_n})
340
alternativo para una (bien sea definida por el usuario o por el sistema) funci@'on, variable, arreglo, etc.
341
Cualquier n@'umero par de argumentos puede ser usado.
345
@defvr {Variable opcional} debugmode
346
Valor por defecto: @code{false}
348
Cuando en Maxima ocurre un error, Maxima inicializar@'a el depurador si @code{debugmode} tiene el valor @code{true}.
349
El usuario puede ingresar comandos para examinar la pila de llamadas, los puntos de interrupci@'on; en pocas palabras ir a trav@'es del c@'odigo de Maxima. Vea @code{debugging} para una lista de los comandos del depurador.
351
Habilitando @code{debugmode} no se capturar@'an los errores tipo Lisp.
353
@c DO WE WANT TO SAY MORE ABOUT DEBUGGING LISP ERRORS ???
354
@c I'M NOT CONVINCED WE WANT TO OPEN THAT CAN OF WORMS !!!
358
@c NEEDS CLARIFICATION
361
@deffn {Funci@'on} ev (@var{expr}, @var{arg_1}, ..., @var{arg_n})
362
Evalua la expresi@'on @var{expr} en el entorno especificado
363
por los argumentos @var{arg_1}, ..., @var{arg_n}.
364
Los argumentos son interruptores (Variables Booleanas), variables de
365
asignaci@'on, ecuaciones y funciones.
366
@code{ev} retorna el resultado (otra expresi@'on) de la evaluaci@'on.
368
La evaluaci@'on se realiza por etapas, como sigue:
372
Primero se configura el entorno de acuerdo a los argumentos los
373
cuales pueden ser algunos o todos de la siguiente lista:
377
@code{simp} causa que @var{expr} sea simplificada sin importar el valor de la variable interruptor @code{simp} la cual inhibe la simplificaci@'on cuando su valor es @code{false}.
379
@code{noeval} suprime la fase de evaluaci@'on de @code{ev} (Vea el paso (4) m@'as adelante).
380
Esto es muy @'util en conjunci@'on con otras variables interruptor y causan en @var{expr} que sea resimplificada sin ser reevaluada.
382
@code{nouns} causa que la evaluaci@'on de las formas de nombre
383
(t@'{@dotless{i}}picamente funciones sin evaluar tales como @code{'integrate} or @code{'diff}) en @code{expr}.
385
@code{expand} causa expansi@'on.
387
@code{expand (@var{m}, @var{n})} causa expansi@'on, asignando los valores de @code{maxposex} y
388
@code{maxnegex} a @var{m} y @var{n}, respectivamente.
390
@code{detout} hace que cualesquiera matrices inversas calculadas en @var{expr} conserven su determinante fuera de la inversa, en vez de que divida a cada elemento.
392
@code{diif} realiza todas las diferenciaciones indicadas en @var{expr}.
394
@code{derivlist (@var{x}, @var{y}, @var{z}, ...)} realiza s@'olo las diferenciaciones con respecto a las variables indicadas.
396
@code{float} provoca la conversi@'on de los n@'umeros racionales no-enteros a n@'umeros decimales de coma flotante.
398
@code{numer} causa que algunas funciones matem@'aticas (incluyendo potenciaci@'on) con argumentos num@'ericos sean evaluados como punto flotante. Esto causa que las variables en @var{expr} las cuales hayan sido declaradas como variables num@'ericas sean reemplazadas por sus respectivos valores. Esto tambi@'en configura la variable interruptor @code{float} a @code{true}.
400
@code{pred} provoca la evaluaci@'on de los predicados (expresiones las cuales se evaluan a @code{true} o @code{false}).
402
@code{eval} provoca una post-evaluaci@'on extra de @var{expr} (v@'ease el paso (5) m@'as adelante), pudiendo aparecer
403
@code{eval} varias veces; por cada aparici@'on de @code{eval}, la expresi@'on es reevaluada.
405
@code{A}, donde @code{A} es un @'atomo declarado como una variable de tipo interruptor, (Vea @code{evflag})
406
causa que @code{A} tenga como valor @code{true} durante
407
la evaluaci@'on de @var{expr}.
409
@code{V: expresion} (o alternativamente @code{V=expresion}) causa que
410
@code{V} tenga el valor de @code{expresion} durante la evaluaci@'on
411
de @var{expr}. Notese que si @code{V} es una opci@'on Maxima, entonces
412
@code{expresion} se usa como su valor durante la evaluaci@'on de
413
@var{expr}. Si m@'as de un argumento de @code{ev} es de este
414
tipo entonces el v@'{@dotless{i}}nculo se hace en paralelo. Si @code{V} es una
415
expresi@'on no at@'omica entonces se hace una sustituci@'on m@'as que
416
un v@'{@dotless{i}}nculo.
418
@code{F} donde @code{F}, un nombre de funci@'on, ha sido declarado para
419
ser una funci@'on de evaluaci@'on (Vea @code{evfun}) causa que
420
@code{F} sea aplicada a @var{expr}.
422
Cualquier otro nombre de funci@'on (e.g., @code{sum}) causa la evaluaci@'on de las ocurrencias de esos nombres en @code{expr} como si ellos fueran
425
En adici@'on de que una funci@'on ocurra en @var{expr} (digamos @code{F(x)}) puede ser definida localmente para el prop@'osito de esta evaluaci@'on
426
de @var{expr} pasando @code{F(x) := expresion} como un argumento a
429
Si un @'atomo no mencionado anteriormente o una variable o expresi@'on
430
con sub@'{@dotless{i}}ndices fueran pasadas como un argumento, esta es evaluada y
431
si el resultado es una ecuaci@'on o una asignaci@'on entonces el
432
v@'{@dotless{i}}nculo o sustituci@'on se llevar@'a a cabo. Si el resultado es una
433
lista entonces los miembros de la lista tratados como si ellos fueran
434
argumentos adicionales pasados a @code{ev}. Esto permite que una
435
lista de argumentos sea pasada (e.g., @code{[X=1, Y=A**2]}) o una lista
436
de nombres de ecuaciones (e.g., @code{[%t1, %t2]} donde @code{%t1} y
437
@code{%t2} son ecuaciones) tal como lo que es retornado por
441
Los argumentos de @code{ev} pueden ser pasados en cualquier orden con excepci@'on de la sustituci@'on de ecuaciones las cuales son manipuladas en
442
secuencia, de izquierda a derecha y las funciones de evaluaci@'on las
443
cuales son compuestas, e.g., @code{ev (@var{expr}, ratsimp, realpart)}
444
es manipulada como @code{realpart (ratsimp (@var{expr}))}.
446
Los interruptores @code{simp}, @code{numer}, @code{float} y @code{pred}
447
pueden tambi@'en ser configurados localmente en una sentencia block, o
448
globalmente en Maxima para que su efecto permanezca hasta que
451
Si @var{expr} es una Expresi@'on Racional Can@'onica (CRE, por sus siglas en ingl@'es), entonces la expresi@'on retornada por @code{ev} es tambi@'en
452
de tipo CRE, siempre que los interruptores @code{numer} y @code{float} no sean @code{true}.
455
Durante el paso (1), se fabrica una lista de las variables que no contienen sub@'{@dotless{i}}ndices que aparecen en el lado izquierdo de las ecuaciones en los
456
argumentos o en el valor de algunos argumentos si el valor es una ecuaci@'on. Las variables (variables que contienen sub@'{@dotless{i}}ndices las cuales no tienen asociado un arreglo de funciones como tambi@'en las variables que no contienen sub@'{@dotless{i}}ndices) en la expresi@'on @var{expr} son reemplazadas por sus valores globales, excepto por aquellos que aparezcan en esa lista.
457
Usualmente, @var{expr} es s@'olo una etiqueta o un @code{%}
458
(como en @code{%i2} en el ejemplo de m@'as abajo) as@'{@dotless{i}} que
459
este paso simplemente recupera la expresi@'on a la que hace referencia
460
la etiqueta y as@'{@dotless{i}} @code{ev} puede trabajarla.
463
Si algunas sustituciones son indicadas por los argumentos, ellas
464
ser@'an llevadas a cabo ahora.
467
La expresi@'on resultante es tambi@'en reevaluada (a menos que uno de
468
los argumentos fuese @code{noeval}) y simplificada de acuerdo a los
469
argumentos. Notese que cualquier llamada a una funci@'on en @var{expr}
470
ser@'a llevada a cabo despu@'es de que las variables sean evaluadas
471
en ella y que @code{ev(F(x))} pueda comportarse como @code{F(ev(x))}.
474
Por cada aparici@'on de @code{eval} en los argumentos, se repetir@'an los pasos (3) y (4).
480
(%i1) sin(x) + cos(y) + (w+1)^2 + 'diff (sin(w), w);
482
(%o1) cos(y) + sin(x) + -- (sin(w)) + (w + 1)
484
(%i2) ev (%, sin, expand, diff, x=2, y=1);
486
(%o2) cos(w) + w + 2 w + cos(1) + 1.909297426825682
489
Una sintaxis alternativa de alto nivel ha sido proveida para @code{ev},
490
por medio de la cual uno puede escribir solamente sus argumentos, sin
491
el comando @code{ev()}. Esto es, una forma sencilla de escritura:
494
@var{expr}, @var{arg_1}, ..., @var{arg_n}
497
Esto no es permitido como parte de otra
498
expresi@'on , e.g., en funciones, sentencias block, etc.
500
N@'otese el proceso de v@'{@dotless{i}}nculo en paralelo en el siguiente ejemplo:
503
(%i3) programmode: false;
505
(%i4) x+y, x: a+y, y: 2;
508
(%i6) -3*x + 2*y = -4$
509
(%i7) solve ([%o5, %o6]);
522
(%i9) x + 1/x > gamma (1/2);
524
(%o9) x + - > sqrt(%pi)
526
(%i10) %, numer, x=1/2;
527
(%o10) 2.5 > 1.772453850905516
536
@defvr {Propiedad} evflag
537
Cuando un s@'{@dotless{i}}mbolo @var{x} goza de la propiedad @code{evflag},
538
las expresiones @code{ev(@var{expr}, @var{x})} y @code{@var{expr}, @var{x}}
539
(en modo interactivo) equivalen a @code{ev(@var{expr}, @var{x} = true)}.
540
Esto es, a @var{x} se le asigna @code{true} al tiempo que se eval@'ua @var{expr}.
542
La expresi@'on @code{declare(@var{x}, evflag)} dota a la variable @var{x}
543
de la propiedad @code{evflag}.
545
Los interruptores que tienen la propiedad @code{evflag} son:
547
@c FOLLOWING LIST CONSTRUCTED FROM LIST UNDER (prog1 '(evflag properties) ...)
548
@c NEAR LINE 2649 OF mlisp.lisp AT PRESENT (2004/11).
555
@code{exponentialize},
561
@code{isolate_wrt_times},
571
@code{numer_pbranch},
577
@code{ratsimpexpons},
588
@c sin (1/2), float=true;
593
@c sum (1/k^2, k, 1, inf);
594
@c sum (1/k^2, k, 1, inf), simpsum;
595
@c declare (aa, evflag);
596
@c if aa = true then YES else NO;
597
@c if aa = true then YES else NO, aa;
604
(%i2) sin (1/2), float;
605
(%o2) 0.479425538604203
606
(%i3) sin (1/2), float=true;
607
(%o3) 0.479425538604203
616
(%i8) sum (1/k^2, k, 1, inf);
624
(%i9) sum (1/k^2, k, 1, inf), simpsum;
629
(%i10) declare (aa, evflag);
631
(%i11) if aa = true then YES else NO;
633
(%i12) if aa = true then YES else NO, aa;
639
@defvr {Propiedad} evfun
640
Cuando la funci@'on @var{F} goza de la propiedad @code{evfun},
641
las expresiones @code{ev(@var{expr}, @var{F})} y @code{@var{expr}, @var{F}}
642
(en modo interactivo) equivalen a @code{@var{F}(ev(@var{expr}))}.
644
Si se especifican dos o m@'as funciones, @var{F}, @var{G}, etc., como poseedoras
645
de la propiedad @code{evfun}, @'estas se aplican en el mismo orden en el que han sido
646
especificadas como tales.
648
La expresi@'on @code{declare(@var{F}, evfun)} dota a la funci@'on @var{F}
649
de la propiedad @code{evfun}.
651
Las funciones que tienen la propiedad @code{evfun} por defecto son:
653
@c FOLLOWING LIST CONSTRUCTED FROM LIST UNDER (prog1 '(evfun properties) ...)
654
@c NEAR LINE 2643 IN mlisp.lisp AT PRESENT (2004/11).
664
@code{rootscontract},
674
@c cos(4 * x) / sin(x)^4;
675
@c cos(4 * x) / sin(x)^4, trigexpand;
676
@c cos(4 * x) / sin(x)^4, trigexpand, ratexpand;
677
@c ratexpand (trigexpand (cos(4 * x) / sin(x)^4));
678
@c declare ([F, G], evfun);
679
@c (aa : bb, bb : cc, cc : dd);
691
(%i2) x^3 - 1, factor;
693
(%o2) (x - 1) (x + x + 1)
694
(%i3) factor (x^3 - 1);
696
(%o3) (x - 1) (x + x + 1)
697
(%i4) cos(4 * x) / sin(x)^4;
702
(%i5) cos(4 * x) / sin(x)^4, trigexpand;
704
sin (x) - 6 cos (x) sin (x) + cos (x)
705
(%o5) -------------------------------------
708
(%i6) cos(4 * x) / sin(x)^4, trigexpand, ratexpand;
711
(%o6) - --------- + ------- + 1
714
(%i7) ratexpand (trigexpand (cos(4 * x) / sin(x)^4));
717
(%o7) - --------- + ------- + 1
720
(%i8) declare ([F, G], evfun);
722
(%i9) (aa : bb, bb : cc, cc : dd);
734
(%i15) G (F (ev (aa)));
741
@defvr {Variable opcional} infeval
742
Habilita el modo de "evaluaci@'on infinita". @code{ev} repetidamente
743
evalua una expresi@'on hasta que se interrumpa la acci@'on. Para prevenir
744
que una variable, digamos @code{X}, sea evaluada sin parar en este modo,
745
simplemente incluya @code{X='X} como argumento de @code{ev}.
746
Esta claro que expresiones como: @code{ev (X, X=X+1, infeval)} generar@'an un bucle infinito.
749
@c REVIEW FOR ACCURACY AND COMPLETENESS
750
@c THIS ITEM IS VERY IMPORTANT !!
752
@deffn {Funci@'on} kill (@var{a_1}, ..., @var{a_n})
753
@deffnx {Funci@'on} kill (labels)
754
@deffnx {Funci@'on} kill (inlabels, outlabels, linelabels)
755
@deffnx {Funci@'on} kill (@var{n})
756
@deffnx {Funci@'on} kill ([@var{m}, @var{n}])
757
@deffnx {Funci@'on} kill (values, functions, arrays, ...)
758
@deffnx {Funci@'on} kill (all)
759
@deffnx {Funci@'on} kill (allbut (@var{a_1}, ..., @var{a_n}))
760
Elimina todas las asignaciones (valor, funci@'on, arreglo o regla) hechas a los
761
argumentos @var{a_1}, ..., @var{a_n}.
762
Un argumento @var{a_k} puede ser un s@'{@dotless{i}}mbolo o el elemento
763
de un array. Si @var{a_k} es elemento de un array, @code{kill} elimina la
764
asignaci@'on hecha a este elemento sin afectar al resto del array.
766
Se reconocen varios argumentos especiales.
767
Se pueden combinar diferentes clases de argumentos,
768
como por ejemplo, @code{kill (inlabels, functions, allbut (foo, bar))}.
770
La instrucci@'on @code{kill (labels)} borra todas las asignaciones asociadas
771
a las etiquetas de entrada, de salida e intermedias creadas hasta el
772
momento. La instrucci@'on @code{kill (inlabels)} elimina @'unicamente
773
las asignaciones de las etiquetas de entrada que comienzan con el
774
valor actual de @code{inchar}. Del mismo modo, @code{kill (outlabels)}
775
elimina @'unicamente las asignaciones de las etiquetas de salida
776
que comienzan con el valor actual de @code{outchar}. Finalmente,
777
@code{kill (linelabels)} elimina @'unicamente las asignaciones
778
las asignaciones de las etiquetas de las expresiones intermedias
779
que comienzan con el valor actual de @code{linechar}.
781
La instrucci@'on @code{kill (@var{n})}, siendo @var{n} un entero,
782
elimina las asignaciones de las @'ultimas @var{n} etiquetas, tanto
783
de entrada como de salida.
785
La instrucci@'on @code{kill ([@var{m}, @var{n}])} elimina las asignaciones
786
hechas a las etiquetas de entrada y salida desde la @var{m} hasta la@var{n}.
788
La instrucci@'on @code{kill (@var{infolist})}, siendo @var{infolist}
789
cualquier elemento de @code{infolists} (como @code{values}, @code{functions}
790
o @code{arrays}), elimina todas las asignaciones hechas a los elementos de
791
@var{infolist}. V@'ease tambi@'en @code{infolists}.
793
La instrucci@'on @code{kill (all)} elimina todas las asignaciones de
794
todas las variables, pero no reinicia las variables globales a sus
795
valores por defecto. V@'ease tambi@'en @code{reset}.
797
La instrucci@'on @code{kill (allbut (@var{a_1}, ..., @var{a_n}))}
798
elimina las asignaciones hechas a todas las variables,
799
excepto a @var{a_1}, ..., @var{a_n}; la instrucci@'on
800
@code{kill (allbut (@var{infolist}))} elimina todas las asignaciones,
801
excepto las de los elementos de @var{infolist}, pudiendo ser @var{infolist}
802
igual a @code{values}, @code{functions}, @code{arrays}, etc.
804
La memoria reservada para una asignaci@'on no se libera hasta que
805
no se vac@'{@dotless{i}}en todos los s@'{@dotless{i}}mbolos
806
asociados con esta asignaci@'on; por ejemplo, para liberar la memoria
807
del valor de un s@'{@dotless{i}}mbolo es necesario eliminar tanto
808
la asignaci@'on de la etiqueta de salida que muestra el resultado,
809
como la del propio s@'{@dotless{i}}mbolo.
811
La funci@'on @code{kill} no evalua sus argumentos.
812
El operador comilla-comilla, @code{'@w{}'}, obliga a que se realice la evaluaci@'on.
814
La llamada @code{kill (@var{symbol})} elimina todas las propiedades de @var{symbol}.
815
Por el contrario, @code{remvalue}, @code{remfunction}, @code{remarray} y @code{remrule}
816
eliminan propiedades espec@'{@dotless{i}}ficas.
818
@code{kill} siempre devuelve @code{done}, incluso cuando alguno de sus
819
argumento carec@'{@dotless{i}}a de asignaci@'on previa.
823
@deffn {Funci@'on} labels (@var{symbol})
824
@deffnx {Variable del sistema} labels
825
Retorna la lista de etiquetas de entrada, salida o de expresiones intermedias las cuales empiezan con @var{symbol}.
826
T@'{@dotless{i}}picamente @var{symbol} es el valor de las variables @code{inchar}, @code{outchar} o @code{linechar}.
827
El caract@'er de etiqueta puede ser pasado con o sin signo de porcentaje,
828
as@'{@dotless{i}}, por ejemplo, @code{i} y @code{%i} producen el mismo resultado.
830
Si ninguna etiqueta empieza con @var{symbol}, @code{labels} retorna a una
831
lista vac@'{@dotless{i}}a.
833
La funci@'on @code{labels} no evalua su argumento.
834
El operador comilla-comilla, @code{'@w{}'}, obliga a que se realice la evaluaci@'on.
836
@code{labels (''inchar)} devuelve las etiquetas de entrada que empiezan con el caract@'er de etiqueta de entrada actual.
838
La variable @code{labels} es una lista de las etiquetas de entrada, salida y expresiones intermedias, incluyendo todas las etiquetas anteriores en el caso de que @code{inchar}, @code{outchar} o @code{linechar} hayan sido redefinidas.
840
Por defecto, Maxima muestra el resultado de cada expresi@'on introducida por el usuario, asignando al resultado una etiqueta de salida.
841
La salida (es decir el resultado) puede ser suprimida terminando la expresi@'on de entrada con un @code{$} (signo de d@'olar) en vez de un @code{;} (punto y coma).
842
En este caso, se crea la etiqueta de salida y se le asigna el resultado, aunque @'este no se muestre; a@'un as@'{@dotless{i}}, la etiqueta puede ser referenciada de la misma forma que se hace con aqu@'ellas cuyos resultados s@'{@dotless{i}} son muestrados.
844
V@'eanse tambi@'en: @code{%}, @code{%%} y @code{%th}.
846
Las etiquetas de expresiones intermedias pueden ser generadas por algunas funciones. El interruptor @code{programmode} controla si @code{solve} y algunas otras funciones generan etiquetas de expresiones intermedias en vez de retornar una lista de expresiones.
847
Algunas otras funciones, tales como @code{ldisplay}, siempre generan etiquetas de expresiones intermedias.
850
V@'ease tambi@'en: @code{inchar}, @code{outchar}, @code{linechar} y @code{infolists}.
854
@c EXPAND; SHOW WHAT HAPPENS WHEN linenum IS ASSIGNED A VALUE
855
@defvr {Variable del sistema} linenum
856
El n@'umero de la l@'{@dotless{i}}nea del par de expresiones de entrada y salida actuales.
860
@defvr {Variable del sistema} myoptions
861
Valor por defecto: @code{[]}
863
@code{myoptions} es la lista de todas las opciones que nunca fueron reconfiguradas por el usuario, aunque @'estas hayan sido reconfiguradas a su valor por defecto.
867
@defvr {Variable opcional} nolabels
868
Valor por defecto: @code{false}
870
Cuando @code{nolabels} vale @code{true},
871
las etiquetas de entrada y salida
872
(@code{%i} y @code{%o}, respectivamente)
873
son mostradas, pero a @'estas no se les
874
asignan los resultados; adem@'as, las etiquetas no se
875
incorporan a la lista @code{labels}.
876
Puesto que a las etiquetas no se les asignan resultados,
877
el colector de basura puede recuperar la memoria ocupada
880
En el caso contrario, a las etiquetas de entrada y salida se les asignan los resultados correspondientes y son a@~nadidas a la lista @code{labels}.
882
Las etiquetas de expresiones intermedias (@code{%t}) no se ven afectadas por la variable @code{nolabels};
883
independientemente de que @code{nolabels} valga @code{true} o @code{false}, a las etiquetas de expresiones intermedias se les asignan siempre valores, adem@'as de ser a@~nadidas a la lista @code{labels}.
885
V@'eanse tambi@'en @code{batch}, @code{batchload} y @code{labels}.
889
@defvr {Variable opcional} optionset
890
Valor por defecto: @code{false}
892
Cuando @code{optionset} tiene como valor @code{true}, Maxima imprime un
893
mensaje cada vez que una opci@'on de Maxima es reconfigurada. Esto es
894
muy @'util si el usuario duda con frecuencia de la correctitud de alguna
895
opci@'on y quiere estar seguro de la variable a la que @'el asign@'o un
896
valor fue verdaramente una variable opci@'on (o interruptor).
900
@deffn {Funci@'on} playback ()
901
@deffnx {Funci@'on} playback (@var{n})
902
@deffnx {Funci@'on} playback ([@var{m}, @var{n}])
903
@deffnx {Funci@'on} playback ([@var{m}])
904
@deffnx {Funci@'on} playback (input)
905
@deffnx {Funci@'on} playback (slow)
906
@deffnx {Funci@'on} playback (time)
907
@deffnx {Funci@'on} playback (grind)
908
Muestra las entradas, salidas y expresiones intermedias
910
@code{playback} s@'olo muestra las expresiones asociadas con etiquetas;
911
cualquier otra salida (tal como texto impreso por @code{print} o @code{describe}, o mensajes de error) no es mostrada.
912
V@'ease tambi@'en: @code{labels}.
914
@code{playback} no evalua sus argumentos.
915
El operador comilla-comilla, @code{'@w{}'}, obliga a que se realice la evaluaci@'on.
916
@code{playback} siempre devuelve @code{done}.
918
@code{playback ()} (sin argumentos) muestra todas las entradas, salidas y expresiones intermedias generadas hasta el momento.
919
Una expresi@'on de salida es mostrada incluso si @'esta fue suprimida por el caracter de terminaci@'on @code{$}, cuando fue originalmente calculada.
921
@code{playback (@var{n})} muestra las @var{n} expresiones m@'as recientes. Cada entrada, salida y expresi@'on intermedia cuenta como una.
923
@code{playback ([@var{m}, @var{n}])} muestra entradas, salidas y expresiones intermedias con los n@'umeros desde @var{m} hasta @var{n}, ambos inclusive.
925
@code{playback ([@var{m}])} es equivalente a @code{playback ([@var{m}, @var{m}])};
926
esto usualmente imprime un par de expresiones de entrada y salida.
928
@code{playback (input)} muestra todas las expresiones de entrada generadas hasta el momento.
930
@code{playback (slow)} hace pausas entre expresiones y
931
espera a que el usuario pulse la tecla @code{enter} para continuar.
932
Esto es un comportamiento similar a @code{demo}.
934
@c WHAT DOES THE FOLLOWING MEAN ???
935
@c HAY QUE ESPERAR PARA ACLARAR ESTA PARTE
936
@code{playback (slow)} es muy @'util en conjunci@'on con @code{save} o
937
@code{stringout} cuando se crea un archivo secundario de almacenamiento con el objetivo de elegir cuidadosamente las expresiones realmente @'utiles.
939
@c @code{playback (slow)} is useful in conjunction with @code{save} or @code{stringout}
940
@c when creating a secondary-storage file in order to pick out useful expressions.
942
@code{playback (time)} muestra el tiempo de computo por cada expresi@'on.
944
@c DON'T BOTHER TO MENTION OBSOLETE OPTIONS !!!
945
@c The arguments @code{gctime} and @code{totaltime} have the same effect as @code{time}.
947
@code{playback (grind)} muestra las expresiones de entrada
948
en el mismo formato como la funci@'on @code{grind}.
949
Las expresiones de salida no se ven afectadas por la opci@'on
953
Los argumentos pueden ser combinandos, e.g.,
954
@code{playback ([5, 10], grind, time, slow)}.
955
@c APPEARS TO BE input INTERSECT (UNION OF ALL OTHER ARGUMENTS). CORRECT ???
959
@deffn {Funci@'on} printprops (@var{a}, @var{i})
960
@deffnx {Funci@'on} printprops ([@var{a_1}, ..., @var{a_n}], @var{i})
961
@deffnx {Funci@'on} printprops (all, @var{i})
962
Muestra la propiedad con el indicador @var{i} asociado
963
con el @'atomo @var{a}. @var{a} pueder ser tambi@'en una lista de
964
@'atomos o el @'atomo @code{all} en cuyo caso todos los @'atomos a los cuales se les haya dado esa propiedad ser@'an usados.
965
Por ejemplo, @code{printprops ([f, g], atvalue)}. @code{printprops} es
966
para propiedades que no pueden ser mostradas de otra manera, i.e. para
967
@code{atvalue}, @code{atomgrad}, @code{gradef}, y @code{matchdeclare}.
971
@defvr {Variable opcional} prompt
972
Valor por defecto: @code{_}
974
@code{prompt} es el s@'{@dotless{i}}mbolo del prompt de la funci@'on @code{demo},
975
del modo @code{playback (slow)} y del bucle de interrupci@'on de Maxima (el que se invoca con @code{break}).
979
@deffn {Funci@'on} quit ()
980
Termina una sesi@'on de Maxima.
981
N@'otese que la funci@'on debe ser invocada como @code{quit();} o @code{quit()$}, no como @code{quit}.
983
Para parar un c@'alculo muy demorado
984
pulse @code{Control-C}.
985
La acci@'on por defecto es retornar a prompt de Maxima.
986
Si @code{*debugger-hook*} tiene como valor @code{nil},
987
pulsar @code{Control-C} abrir@'a el depurador de Lisp.
988
Vea tambi@'en: @code{debugging}.
993
@deffn {Funci@'on} remfunction (@var{f_1}, ..., @var{f_n})
994
@deffnx {Funci@'on} remfunction (all)
995
Desliga las definiciones de funci@'on de sus s@'{@dotless{i}}mbolos @var{f_1}, ..., @var{f_n}.
996
Los argumentos pueden ser nombres de funciones ordinarias (creadas con @code{:=} o @code{define}) o de funciones macro (creadas con @code{::=}).
998
La instrucci@'on @code{remfunction (all)} desliga todas las definiciones de funciones.
1000
La funci@'on @code{remfunction} no eval@'ua sus argumentos.
1002
La funci@'on @code{remfunction} devuelve una lista con los s@'{@dotless{i}}mbolos para los que la definici@'on de funci@'on fue desligada. Devuelve @code{false} en el lugar de cualquier s@'{@dotless{i}}mbolo para el que no hay funci@'on definida.
1006
@deffn {Funci@'on} reset ()
1007
Reconfigura muchas variables y opciones globales y algunas otras variables a sus valores por defecto.
1009
@code{reset} procesa las variables que se encuentran en la lista Lisp
1010
@code{*variable-initial-values*}.
1011
La macro Lisp @code{defmvar} pone las variables en @'esta lista (entre otras acciones).
1012
Muchas, pero no todas, las variables y opciones globales son definidas por @code{defmvar}, y algunas variables definidas por @code{defmvar} no son ni variables ni opciones globales.
1016
@defvr {Variable opcional} showtime
1017
Valor por defecto: @code{false}
1019
Cuando @code{showtime} tiene como valor @code{true}, el tiempo de c@'alculo y el tiempo de retardo se imprimen junto con la salida de cada expresi@'on.
1021
El tiempo de c@'alculo se almacena siempre, de manera que @code{time} y @code{playback} puedan mostrar el tiempo de c@'alculo incluso cuando @code{showtime} vale @code{false}.
1023
V@'ease tambi@'en @code{timer}.
1027
@c IS THIS ANY DIFFERENT FROM ASSIGNING A PROPERTY ??
1028
@c THIS REALLY SEEMS LIKE A HACK
1029
@deffn {Funci@'on} sstatus (@var{feature}, @var{package})
1030
Configura el estado de @var{feature} en @var{package}.
1031
Despu@'es de que @code{sstatus (@var{feature}, @var{package})} es
1032
ejecutado @code{status (@var{feature}, @var{package})} retorna
1034
Esto puede ser muy @'util para escritores de paquetes, con el
1035
objetivo de conservar las pistas de que caracter@'{@dotless{i}}siticas han
1040
@deffn {Function} to_lisp ()
1041
Entra en el int@'erprete Lisp bajo Maxima. @code{(to-maxima)} retorna de nuevo a Maxima.
1045
@defvr {Variable del sistema} values
1046
Valor inicial: @code{[]}
1048
@code{values} es una lista de todas las variables que el usuario ha creado (no constituye las opciones Maxima ni los interruptores).
1049
La lista comprende los s@'{@dotless{i}}mbolos @code{:} , @code{::}, o @code{:=}.