~ubuntu-branches/debian/squeeze/maxima/squeeze

« back to all changes in this revision

Viewing changes to doc/info/es/Input.es.texi

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2006-10-18 14:52:42 UTC
  • mto: (1.1.5 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20061018145242-vzyrm5hmxr8kiosf
ImportĀ upstreamĀ versionĀ 5.10.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@c english version 1.45
 
2
@menu
 
3
* Introducci@'on a  Entrada y Salida::
 
4
* Comentarios::
 
5
* Archivos::
 
6
* Definiciones para Entrada y Salida::
 
7
@end menu
 
8
 
 
9
@node Introducci@'on a Entrada y Salida, Comentarios, Entrada y Salida, Entrada y Salida
 
10
@section Introducci@'on a Entrada y Salida
 
11
 
 
12
@node Comentarios, Archivos, Introducci@'on a Entrada y Salida, Entrada y Salida
 
13
@section Comentarios
 
14
 
 
15
En Maxima, un comentario es cualquier texto encerrado entre las
 
16
marcas @code{/*} y @code{*/}.
 
17
 
 
18
El analizador sint@'actico de Maxima trata los comentarios como
 
19
espacios en blanco a efectos de encontrar @i{tokens} en el flujo
 
20
de entrada. Una entrada tal como @code{a/* foo */b} contiene dos
 
21
@i{tokens}, @code{a} y @code{b}, no un @'unico @i{token} @code{ab}.
 
22
En cualquier otro contexto, los comentarios son ignorados por Maxima;
 
23
no se almacenan ni sus contenidos ni sus localizaciones.
 
24
 
 
25
Los comentarios pueden anidarse hasta una profundidad arbitraria.
 
26
Las marcas  @code{/*} y @code{*/} deben emparejarse y debe haber igual n@'umero
 
27
de ambos.
 
28
 
 
29
Ejemplos:
 
30
 
 
31
@c ===beg===
 
32
@c /* aa is a variable of interest */  aa : 1234;
 
33
@c /* Value of bb depends on aa */  bb : aa^2;
 
34
@c /* User-defined infix operator */  infix ("b");
 
35
@c /* Parses same as a b c, not abc */  a/* foo */b/* bar */c;
 
36
@c /* Comments /* can be nested /* to arbitrary depth */ */ */  1 + xyz;
 
37
@c ===end===
 
38
@example
 
39
(%i1) /* aa is a variable of interest */  aa : 1234;
 
40
(%o1)                         1234
 
41
(%i2) /* Value of bb depends on aa */  bb : aa^2;
 
42
(%o2)                        1522756
 
43
(%i3) /* User-defined infix operator */  infix ("b");
 
44
(%o3)                           b
 
45
(%i4) /* Parses same as a b c, not abc */  a/* foo */b/* bar */c;
 
46
(%o4)                         a b c
 
47
(%i5) /* Comments /* can be nested /* to arbitrary depth */ */ */  1 + xyz;
 
48
(%o5)                        xyz + 1
 
49
@end example
 
50
 
 
51
 
 
52
@node Archivos, Definiciones para Entrada y Salida, Comentarios, Entrada y Salida
 
53
@section Archivos
 
54
 
 
55
Un archivo no es m@'as que una @'area de un cierto dispositivo de almacenamiento que contiene datos o texto.
 
56
Los archivos se agrupan en los discos en "directorios", que son listas de archivos.
 
57
Instrucciones que operan con archivos son:
 
58
@code{save},
 
59
@code{load},
 
60
@code{loadfile},
 
61
@code{stringout},
 
62
@code{batch},
 
63
@code{demo},
 
64
@code{writefile},
 
65
@code{closefile} y
 
66
@code{appendfile}.
 
67
 
 
68
@node Definiciones para Entrada y Salida,  , Archivos, Entrada y Salida
 
69
@section Definiciones para Entrada y Salida
 
70
 
 
71
@defvr {Variable del sistema} __
 
72
 
 
73
@code{__} es la expresi@'on de entrada que est@'a siendo actualmente evaluada.
 
74
Esto es, mientras se est@'a evaluando una expresi@'on de entrada, 
 
75
@code{__} es igual a @var{expr}.
 
76
 
 
77
A @code{__} se le asigna la expresi@'on de entrada antes de que @'esta sea 
 
78
simplificada o evaluada. Sin embargo, el valor de @code{__} es simplificado,
 
79
pero no evaluado, cuando su valor es mostrado en el terminal.
 
80
 
 
81
La variable @code{__} es reconocida por  @code{batch} y por @code{load}.
 
82
Cuando un fichero es procesado por @code{batch}, la variable @code{__}
 
83
tiene el mismo significado que en el modo interactivo.
 
84
Cuando un fichero es procesado por @code{load}, a la variable @code{__}
 
85
se le asigna la @'ultima expresi@'on introducida, bien desde el modo
 
86
interactivo, bien en un fichero por lotes; en ning@'un caso se le asigna 
 
87
a @code{__} una expresi@'on de entrada del fichero que est@'a siendo procesado.
 
88
En particular, si @code{load (@var{filename})} es ejecutado desde el modo
 
89
interactivo, entonces @code{__} almacena la expresi@'on @code{load (@var{filename})}
 
90
mientras el fichero est@'a siendo procesado.
 
91
 
 
92
V@'eanse tambi@'en @code{_} y @code{%}.
 
93
 
 
94
Ejemplos:
 
95
 
 
96
@c ===beg===
 
97
@c print ("I was called as", __);
 
98
@c foo (__);
 
99
@c g (x) := (print ("Current input expression =", __), 0);
 
100
@c [aa : 1, bb : 2, cc : 3];
 
101
@c (aa + bb + cc)/(dd + ee + g(x));
 
102
@c ===end===
 
103
@example
 
104
(%i1) print ("I was called as", __);
 
105
I was called as print(I was called as, __) 
 
106
(%o1)              print(I was called as, __)
 
107
(%i2) foo (__);
 
108
(%o2)                     foo(foo(__))
 
109
(%i3) g (x) := (print ("Current input expression =", __), 0);
 
110
(%o3) g(x) := (print("Current input expression =", __), 0)
 
111
(%i4) [aa : 1, bb : 2, cc : 3];
 
112
(%o4)                       [1, 2, 3]
 
113
(%i5) (aa + bb + cc)/(dd + ee + g(x));
 
114
                            cc + bb + aa
 
115
Current input expression = -------------- 
 
116
                           g(x) + ee + dd
 
117
                                6
 
118
(%o5)                        -------
 
119
                             ee + dd
 
120
@end example
 
121
 
 
122
@end defvr
 
123
 
 
124
 
 
125
@defvr {Variable del sistema} _
 
126
 
 
127
El s@'{@dotless{i}}mbolo @code{_} representa la @'ultima expresi@'on de entrada (esto es, @code{%i1}, @code{%i2}, @code{%i3}, ...).
 
128
 
 
129
Al s@'{@dotless{i}}mbolo @code{_} se le asigna la expresi@'on de entrada antes de que @'esta sea simplificada o evaluada. Sin embargo, el valor de @code{_} se simplifica (pero no se eval@'ua) cuando se muestra en el terminal.
 
130
 
 
131
La variable @code{_} es reconocida por  @code{batch} y por @code{load}.
 
132
Cuando un fichero es procesado por @code{batch}, la variable @code{_}
 
133
tiene el mismo significado que en el modo interactivo.
 
134
Cuando un fichero es procesado por @code{load}, a la variable @code{_}
 
135
se le asigna la @'ultima expresi@'on introducida, bien desde el modo
 
136
interactivo, bien en un fichero por lotes; en ning@'un caso se le asigna 
 
137
a @code{_} una expresi@'on de entrada del fichero que est@'a siendo procesado.
 
138
 
 
139
V@'eanse tambi@'en @code{__} y @code{%}.
 
140
 
 
141
Ejemplos:
 
142
 
 
143
@c ===beg===
 
144
@c 13 + 29;
 
145
@c :lisp $_
 
146
@c _;
 
147
@c sin (%pi/2);
 
148
@c :lisp $_
 
149
@c _;
 
150
@c a: 13$
 
151
@c b: 29$
 
152
@c a + b;
 
153
@c :lisp $_
 
154
@c _;
 
155
@c a + b;
 
156
@c ev (_);
 
157
@c ===end===
 
158
@example
 
159
(%i1) 13 + 29;
 
160
(%o1)                          42
 
161
(%i2) :lisp $_
 
162
((MPLUS) 13 29)
 
163
(%i2) _;
 
164
(%o2)                          42
 
165
(%i3) sin (%pi/2);
 
166
(%o3)                           1
 
167
(%i4) :lisp $_
 
168
((%SIN) ((MQUOTIENT) $%PI 2))
 
169
(%i4) _;
 
170
(%o4)                           1
 
171
(%i5) a: 13$
 
172
(%i6) b: 29$
 
173
(%i7) a + b;
 
174
(%o7)                          42
 
175
(%i8) :lisp $_
 
176
((MPLUS) $A $B)
 
177
(%i8) _;
 
178
(%o8)                         b + a
 
179
(%i9) a + b;
 
180
(%o9)                          42
 
181
(%i10) ev (_);
 
182
(%o10)                         42
 
183
@end example
 
184
 
 
185
@end defvr
 
186
 
 
187
@defvr {Variable del sistema} %
 
188
El s@'{@dotless{i}}mbolo @code{%} representa la expresi@'on de salida (esto es, @code{%o1}, @code{%o2}, @code{%o3}, ...)
 
189
m@'as reciente calculada por Maxima, independientemente de que la haya mostrado o no.
 
190
 
 
191
La variable @code{%} es reconocida por  @code{batch} y por @code{load}.
 
192
Cuando un fichero es procesado por @code{batch}, la variable @code{%}
 
193
tiene el mismo significado que en el modo interactivo.
 
194
Cuando un fichero es procesado por @code{load}, a la variable @code{%}
 
195
se le asigna la @'ultima expresi@'on introducida, bien desde el modo
 
196
interactivo, bien en un fichero por lotes; en ning@'un caso se le asigna 
 
197
a @code{%} una expresi@'on de entrada del fichero que est@'a siendo procesado.
 
198
 
 
199
V@'eanse tambi@'en @code{_}, @code{%%} y @code{%th}.
 
200
 
 
201
@end defvr
 
202
 
 
203
@defvr {Variable del sistema} %%
 
204
En una sentencia compuesta, como @code{block}, @code{lambda} o @code{(@var{s_1}, ..., @var{s_n})}, @code{%%} es el valor de la sentencia previa.
 
205
Por ejemplo,
 
206
 
 
207
@example
 
208
block (integrate (x^5, x), ev (%%, x=2) - ev (%%, x=1));
 
209
block ([prev], prev: integrate (x^5, x), ev (prev, x=2) - ev (prev, x=1));
 
210
@end example
 
211
 
 
212
devuelven el mismo resultado  @code{21/2}.
 
213
 
 
214
Una sentencia compuesta puede contener otras sentencias compuestas.
 
215
Independientemente de que una sentencia sea simple o compuesta, @code{%%} es el valor de la sentencia previa.
 
216
Por ejemplo,
 
217
 
 
218
@example
 
219
block (block (a^n, %%*42), %%/6)
 
220
@end example
 
221
 
 
222
devuelve @code{7*a^n}.
 
223
 
 
224
Dentro de una sentencia compuesta, el valor de @code{%%} puede inspeccionarse en un punto de interrupci@'on que se abra ejecutando la funci@'on @code{break}. Por ejemplo, en el punto de interrupci@'on abierto por
 
225
 
 
226
@example
 
227
block (a: 42, break ())$
 
228
@end example
 
229
 
 
230
introduciendo @code{%%;} se obtiene @code{42}.
 
231
 
 
232
En la primera sentencia de una sentencia compuesta, o fuera de una sentencia compuesta, @code{%%} no est@'a definido.
 
233
 
 
234
La variable @code{%%} es reconocida por  @code{batch} y por @code{load}.
 
235
Cuando un fichero es procesado por @code{batch}, la variable @code{%%}
 
236
tiene el mismo significado que en el modo interactivo.
 
237
 
 
238
V@'ease tambi@'en @code{%}.
 
239
 
 
240
@end defvr
 
241
 
 
242
@defvr {Variable opcional} %edispflag
 
243
Valor por defecto: @code{false}
 
244
 
 
245
Si @code{%edispflag} vale @code{true}, Maxima muestra @code{%e} elevado a un exponente negativo como un cociente.
 
246
Por ejemplo, @code{%e^-x} se muestra como @code{1/%e^x}.
 
247
 
 
248
@end defvr
 
249
 
 
250
@deffn {Funci@'on} %th (@var{i})
 
251
Es el valor de la expresi@'on de salida previa @var{i}-@'esima.
 
252
Esto es, si la siguiente expresi@'on a calcular es la salida @var{n}-@'esima,
 
253
@code{%th (@var{m})} es la salida  (@var{n} - @var{m})-@'esima.
 
254
 
 
255
La funci@'on @code{%th} es @'util en archivos tipo @code{batch} o para hacer referencia a un grupo de expresiones de salida.
 
256
Por ejemplo,
 
257
 
 
258
@example
 
259
block (s: 0, for i:1 thru 10 do s: s + %th (i))$
 
260
@end example
 
261
 
 
262
asigna a @code{s} la suma de las diez @'ultimas expresiones de salida.
 
263
 
 
264
La variable @code{%th} es reconocida por  @code{batch} y por @code{load}.
 
265
Cuando un fichero es procesado por @code{batch}, la variable @code{%th}
 
266
tiene el mismo significado que en el modo interactivo.
 
267
Cuando un fichero es procesado por @code{load}, a la variable @code{%th}
 
268
se le asigna la @'ultima expresi@'on introducida, bien desde el modo
 
269
interactivo, bien en un fichero por lotes; en ning@'un caso se le asigna 
 
270
a @code{%th} una expresi@'on de entrada del fichero que est@'a siendo procesado.
 
271
 
 
272
V@'ease tambi@'en @code{%}.
 
273
 
 
274
@end deffn
 
275
 
 
276
@deffn {Special symbol} ?
 
277
Como prefijo de una funci@'on o nombre de variable, @code{?} significa que el nombre es de Lisp, no de Maxima.
 
278
Por ejemplo, @code{?round} representa la funci@'on de Lisp @code{ROUND}.
 
279
V@'ease @code{Lisp y Maxima} para m@'as informaci@'on.
 
280
 
 
281
La notaci@'on @code{? word} (un s@'{@dotless{i}}mbolo de interrogaci@'on seguido de una palabra y separados por un espacio)
 
282
equivale a @code{describe ("word")}.
 
283
 
 
284
@end deffn
 
285
 
 
286
@defvr {Variable opcional} absboxchar
 
287
Valor por defecto: @code{!}
 
288
 
 
289
La variable @code{absboxchar} es el car@'acter utilizado para representar el valor absoluto de una expresi@'on que ocupa m@'as de una l@'{@dotless{i}}nea de altura.
 
290
 
 
291
@end defvr
 
292
 
 
293
@defvr {Variable opcional} file_output_append
 
294
Valor por defecto: @code{false}
 
295
 
 
296
La variable @code{file_output_append} controla si las funciones de escritura de ficheros a@~naden informaci@'on o sustituyen el fichero de salida. Cuando @code{file_output_append} toma el valor @code{true}, estas funciones ampl@'{@dotless{i}}an el contenido de sus ficheros de salida; en otro caso, sustituyen el fichero anterior de igual nombre por otro con el nuevo contenido.
 
297
 
 
298
Las funciones @code{save}, @code{stringout} y @code{with_stdout} se ven afectadas por el valor que tome la variable @code{file_output_append}. Otras funciones que tambi@'en escriben en ficheros de salida no tienen en cuenta este valor; en concreto, las funciones para la representaci@'on de gr@'aficos y las de traducci@'on siempre sustituyen el fichero anterior por uno nuevo de igual nombre, mientras que las funciones @code{tex} y @code{appendfile} siempre a@~naden informaci@'on al fichero de salida sin eliminar la informaci@'on anterior.
 
299
@c WHAT ABOUT WRITEFILE ??
 
300
 
 
301
@end defvr
 
302
 
 
303
@deffn {Funci@'on} appendfile (@var{filename})
 
304
A@~nade informaci@'on de la consola a @var{filename}, de igual manera que lo hace @code{writefile}, pero con la salvedad de que si el archivo ya existe la informaci@'on queda a@~nadida al final de su contenido.
 
305
 
 
306
La funci@'on @code{closefile} cierra los archivos abiertos por @code{appendfile} o @code{writefile}.
 
307
 
 
308
@end deffn
 
309
 
 
310
@deffn {Funci@'on} batch (@var{filename})
 
311
Lee expresiones de Maxima desde @var{filename} y las eval@'ua. La funci@'on
 
312
@code{batch} busca @var{filename} en la lista @code{file_search_maxima}.
 
313
V@'ease @code{file_search}.
 
314
 
 
315
El contenido de @var{filename} debe ser una secuencia de expresiones de Maxima,
 
316
cada una de las cuales termina en @code{;} o @code{$}.
 
317
La variable especial @code{%} y la funci@'on @code{%th}
 
318
se refieren a resultados previos dentro del archivo.
 
319
El archivo puede incluir construcciones del tipo @code{:lisp}.
 
320
Espacios, tabulaciones y saltos de l@'{@dotless{i}}nea en el archivo se ignoran.
 
321
Un archivo de entrada v@'alido puede crearse con un editor de texto o con la funci@'on @code{stringout}.
 
322
 
 
323
La funci@'on @code{batch} lee las expresiones del archivo @var{filename}, muestra las entradas en la consola, realiza los c@'alculos solicitados y muestra las expresiones de los resultados.
 
324
A las expresiones de entrada se les asignan etiquetas, as@'{@dotless{i}} como a las de salida. La funci@'on
 
325
@code{batch} eval@'ua todas las expresiones de entrada del archivo a menos que se produzca un error.
 
326
Si se le solicita informaci@'on al usuario (con @code{asksign} o @code{askinteger}, por ejemplo)
 
327
@code{batch} se detiene para leer la nueva informaci@'on para luego continuar.
 
328
 
 
329
Es posible detener  @code{batch} tecleando @code{control-C} desde la consola.
 
330
El efecto de @code{control-C} depende del entorno Lisp instalado.
 
331
 
 
332
La funci@'on @code{batch} tiene diversas aplicaciones, tales como servir de almac@'en de l@'{@dotless{i}}neas de instrucciones, suministrar demostraciones libres de errores o ayudar a organizar el trabajo del usuario en la resoluci@'on de problemas complejos.
 
333
 
 
334
La funci@'on @code{batch} eval@'ua su argumento.
 
335
 
 
336
V@'eanse tambi@'en  @code{load}, @code{batchload} y @code{demo}.
 
337
 
 
338
@end deffn
 
339
 
 
340
@deffn {Funci@'on} batchload (@var{filename})
 
341
Lee expresiones de Maxima desde @var{filename} y las eval@'ua sin mostrar las entradas ni las salidas y sin asignarles etiquetas. Sin embargo, las salidas producidas por  @code{print} o @code{describe} s@'{@dotless{i}} se muestran.
 
342
 
 
343
La variable especial @code{%} y la funci@'on @code{%th} se refieren a resultados previos del int@'erprete interactivo, no a los del propio archivo. El archivo no puede incluir construcciones del tipo @code{:lisp}.
 
344
 
 
345
La funci@'on @code{batchload} devuelve la ruta de @var{filename} en formato de cadena.
 
346
 
 
347
La funci@'on @code{batchload} eval@'ua sus argumentos.
 
348
 
 
349
V@'eanse tambi@'en @code{batch} y @code{load}.
 
350
@c batchload APPEARS TO HAVE THE SAME EFFECT AS load. WHY NOT GET RID OF batchload ???
 
351
 
 
352
@end deffn
 
353
 
 
354
@deffn {Funci@'on} closefile ()
 
355
La funci@'on @code{closefile} cierra los archivos abiertos por @code{appendfile} o @code{writefile}.
 
356
 
 
357
@end deffn
 
358
 
 
359
@c FALTA DEFINICION DE collapse
 
360
 
 
361
@deffn {Funci@'on} concat (@var{arg_1}, @var{arg_2}, ...)
 
362
Concatena sus argumentos, que deben ser todos @'atomos.
 
363
El valor devuelto es un s@'{@dotless{i}}mbolo si el primer argumento es a su vez un s@'{@dotless{i}}mbolo, o una cadena de Maxima en caso contrario.
 
364
 
 
365
La funci@'on @code{concat} eval@'ua sus argumentos.
 
366
El ap@'atrofo  @code{'} evita la evaluaci@'on.
 
367
 
 
368
@example
 
369
(%i1) y: 7$
 
370
(%i2) z: 88$
 
371
(%i3) concat (y, z/2);
 
372
(%o3)                          744
 
373
(%i4) concat ('y, z/2);
 
374
(%o4)                          y44
 
375
@end example
 
376
 
 
377
A un s@'{@dotless{i}}mbolo construido por @code{concat} se le puede asignar un valor y ser utilizado posteriormente en expresiones.
 
378
La asignaci@'on con el operador @code{::} eval@'ua su expresi@'on izquierda.
 
379
 
 
380
@example
 
381
(%i5) a: concat ('y, z/2);
 
382
(%o5)                          y44
 
383
(%i6) a:: 123;
 
384
(%o6)                          123
 
385
(%i7) y44;
 
386
(%o7)                          123
 
387
(%i8) b^a;
 
388
                               y44
 
389
(%o8)                         b
 
390
(%i9) %, numer;
 
391
                               123
 
392
(%o9)                         b
 
393
@end example
 
394
 
 
395
N@'otese que aunque @code{concat (1, 2)} parezca un n@'umero, se trata de una cadena de Maxima.
 
396
 
 
397
@example
 
398
(%i10) concat (1, 2) + 3;
 
399
(%o10)                       12 + 3
 
400
@end example
 
401
 
 
402
@end deffn
 
403
 
 
404
@deffn {Funci@'on} sconcat (@var{arg_1}, @var{arg_2}, ...)
 
405
 
 
406
Concatena sus argumentos para producir una cadena.
 
407
Al contrario que @code{concat}, sus argumentos @i{no} necesitan ser @'atomos.
 
408
 
 
409
El resultado es una cadena de Lisp.
 
410
@c THAT'S ODD; WHY NOT A MAXIMA STRING ??
 
411
 
 
412
@example
 
413
(%i1) sconcat ("xx[", 3, "]:", expand ((x+y)^3));
 
414
(%o1)               xx[3]:y^3+3*x*y^2+3*x^2*y+x^3
 
415
@end example
 
416
 
 
417
@end deffn
 
418
 
 
419
@deffn {Funci@'on} disp (@var{expr_1}, @var{expr_2}, ...)
 
420
Es como @code{display} pero s@'olo se muestran los valores de los argumentos, no las ecuaciones. Es @'util para argumentos complicados que no tienen nombre o en situaciones en las que solamente es de inter@'es el valor del argumento pero no su nombre.
 
421
 
 
422
@end deffn
 
423
 
 
424
@deffn {Funci@'on} dispcon (@var{tensor_1}, @var{tensor_2}, ...)
 
425
@deffnx {Funci@'on} dispcon (all)
 
426
Muestra las propiedades contractivas de sus argumentos tal como fueron asignadas por @code{defcon}. La llamada @code{dispcon (all)} muestra todas propiedades contractivas que fueron definidas.
 
427
 
 
428
@end deffn
 
429
 
 
430
@deffn {Funci@'on} display (@var{expr_1}, @var{expr_2}, ...)
 
431
Muestra las ecuaciones cuyos miembros izquierdos son 
 
432
@var{expr_i} sin evaluar y cuyos miembros derechos son los valores de las expresiones. Esta funci@'on es @'util en los bloques y en las sentencias @code{for} para mostrar resultados intermedios.  Los argumentos de @code{display} suelen ser @'atomos, variables subindicadas o llamadas a funciones. V@'ease tambi@'en @code{disp}.
 
433
 
 
434
@example
 
435
(%i1) display(B[1,2]);
 
436
                                      2
 
437
                         B     = X - X
 
438
                          1, 2
 
439
(%o1)                            done
 
440
@end example
 
441
 
 
442
@end deffn
 
443
 
 
444
@defvr {Variable opcional} display2d
 
445
Valor por defecto: @code{true}
 
446
 
 
447
Si @code{display2d} vale @code{false}, la salida por consola es una cadena unidimensional, en lugar de una expresi@'on bidimensional.
 
448
 
 
449
@end defvr
 
450
 
 
451
@defvr {Variable opcional} display_format_internal
 
452
Valor por defecto: @code{false}
 
453
 
 
454
Si @code{display_format_internal} vale @code{true},
 
455
las expresiones se muestran sin ser transformadas de manera que oculten su representaci@'on matem@'atica interna. Se representa lo que la funci@'on @code{inpart} devolver@'{@dotless{i}}a, en oposici@'on a @code{part}.
 
456
 
 
457
Ejemplos:
 
458
 
 
459
@example
 
460
User     part       inpart
 
461
a-b;      A - B     A + (- 1) B
 
462
 
 
463
           A            - 1
 
464
a/b;       -         A B
 
465
           B
 
466
                       1/2
 
467
sqrt(x);   sqrt(X)    X
 
468
 
 
469
          4 X        4
 
470
X*4/3;    ---        - X
 
471
           3         3
 
472
@end example
 
473
 
 
474
@end defvr
 
475
 
 
476
@deffn {Funci@'on} dispterms (@var{expr})
 
477
Muestra @var{expr} en partes, una debajo de la otra.
 
478
Esto es, primero se muestra el operador de @var{expr}, luego cada t@'ermino si se trata de una suma, o cada factor si es un producto, o si no se muestra separadamente la parte de una expresi@'on m@'as general. Es @'util si @var{expr} es demasiado grande para representarla de otra forma.  Por ejemplo, si @code{P1}, @code{P2}, ...  son expresiones muy grandes, entonces el programa de representaci@'on puede superar el espacio de almacenamiento tratando de mostrar @code{P1 + P2 + ...} todo junto.  Sin embargo, @code{dispterms (P1 + P2 + ...)} muestra @code{P1}, debajo  @code{P2}, etc.  Cuando una expresi@'on exponencial es demasiado ancha para ser representada como @code{A^B}, si no se utiliza @code{dispterms}, entonces aparecer@'a como @code{expt (A, B)} (o como @code{ncexpt (A, B)}, en lugar de @code{A^^B}).
 
479
 
 
480
@end deffn
 
481
 
 
482
@defvr {Variable opcional} error_size
 
483
Valor por defecto: 10
 
484
 
 
485
La variable @code{error_size} modifica los mensajes de error de acuerdo con el tama@~no de las expresiones que aparecen en @'el. Si el tama@~no de una expresi@'on (tal como lo determina la funci@'on Lisp @code{ERROR-SIZE})
 
486
es mayor que @code{error_size}, la expresi@'on se reemplaza en el mensaje por un s@'{@dotless{i}}mbolo, asign@'andole a @'este una expresi@'on. Los s@'{@dotless{i}}mbolos se toman de la lista @code{error_syms}.
 
487
 
 
488
En caso contrario, si la expresi@'on es menor que @code{error_size}, la expresi@'on se muestra en el propio mensaje.
 
489
 
 
490
V@'eanse tambi@'en @code{error} y @code{error_syms}.
 
491
 
 
492
Ejemplo:
 
493
@c OUTPUT GENERATED BY THE FOLLOWING
 
494
@c U: (C^D^E + B + A)/(cos(X-1) + 1)$
 
495
@c error_size: 20$
 
496
@c error ("Example expression is", U);
 
497
@c errexp1;
 
498
@c error_size: 30$
 
499
@c error ("Example expression is", U);
 
500
 
 
501
El tama@~no de @code{U}, tal como lo determina @code{ERROR-SIZE}, es 24.
 
502
 
 
503
@example
 
504
(%i1) U: (C^D^E + B + A)/(cos(X-1) + 1)$
 
505
 
 
506
(%i2) error_size: 20$
 
507
 
 
508
(%i3) error ("Example expression is", U);
 
509
 
 
510
Example expression is errexp1
 
511
 -- an error.  Quitting.  To debug this try debugmode(true);
 
512
(%i4) errexp1;
 
513
                            E
 
514
                           D
 
515
                          C   + B + A
 
516
(%o4)                    --------------
 
517
                         cos(X - 1) + 1
 
518
(%i5) error_size: 30$
 
519
 
 
520
(%i6) error ("Example expression is", U);
 
521
 
 
522
                         E
 
523
                        D
 
524
                       C   + B + A
 
525
Example expression is --------------
 
526
                      cos(X - 1) + 1
 
527
 -- an error.  Quitting.  To debug this try debugmode(true);
 
528
@end example
 
529
 
 
530
@end defvr
 
531
 
 
532
@defvr {Variable opcional} error_syms
 
533
Valor por defecto: @code{[errexp1, errexp2, errexp3]}
 
534
 
 
535
En los mensajes de error, las expresiones mayores que @code{error_size} son reemplazadas por s@'{@dotless{i}}mbolos a los cuales se les asignas estas expresiones.  Los s@'{@dotless{i}}mbolos se toman de la lista @code{error_syms}. La primera expresi@'on que resulte ser demasiado larga se reemplaza por @code{error_syms[1]}, la segunda por @code{error_syms[2]} y as@'{@dotless{i}} sucesivamente.
 
536
 
 
537
Si hay m@'as expresiones largas que elementos en @code{error_syms}, los s@'{@dotless{i}}mbolos se construyen autom@'aticamente, siendo el @var{n}-@'esimo s@'{@dotless{i}}mbolo equivalente a @code{concat ('errexp, @var{n})}.
 
538
 
 
539
V@'eanse tambi@'en @code{error} y @code{error_size}.
 
540
 
 
541
@end defvr
 
542
 
 
543
@deffn {Funci@'on} expt (@var{a}, @var{b})
 
544
Si una expresi@'on exponencial es demasiado ancha para ser mostrada como @code{@var{a}^@var{b}} aparecer@'a como @code{expt (@var{a}, @var{b})} (o como @code{ncexpt (@var{a}, @var{b})} en lugar de @code{@var{a}^^@var{b}}).
 
545
 
 
546
@c THIS SEEMS LIKE A BUG TO ME. expt, ncexpt SHOULD BE RECOGNIZED SINCE MAXIMA
 
547
@c ITSELF PRINTS THEM SOMETIMES. THESE SHOULD JUST SIMPLIFY TO ^ AND ^^, RESPECTIVELY.
 
548
Las funciones @code{expt} y @code{ncexpt} no se reconocen en una entrada.
 
549
 
 
550
@end deffn
 
551
 
 
552
@defvr {Variable opcional} exptdispflag
 
553
Valor por defecto: @code{true}
 
554
 
 
555
Si @code{exptdispflag} vale @code{true}, Maxima muestra las expresiones con exponentes negativos como cocientes; por ejemplo, @code{X^(-1)} se muestra como @code{1/X}.
 
556
 
 
557
@end defvr
 
558
 
 
559
@deffn {Funci@'on} filename_merge (@var{path}, @var{filename})
 
560
Construye una ruta modificada a partir de @var{path} y @var{filename}.
 
561
Si la componente final de @var{path} es de la forma @code{###.@var{something}},
 
562
la componente se reemplaza con @code{@var{filename}.@var{something}}.
 
563
En otro caso, la componente final se reemplaza simplemente por @var{filename}.
 
564
 
 
565
@c SAY SOMETHING ABOUT ARG TYPE -- LISP STRINGS WORK BETTER THAN MAXIMA STRINGS
 
566
@c SAY SOMETHING ABOUT RETURN TYPE
 
567
@end deffn
 
568
 
 
569
@deffn {Funci@'on} file_search (@var{filename})
 
570
@deffnx {Funci@'on} file_search (@var{filename}, @var{pathlist})
 
571
 
 
572
La funci@'on @code{file_search} busca el archivo @var{filename} y devuelve su ruta como una cadena; si no lo encuentra,  @code{file_search} devuelve @code{false}. La llamada 
 
573
@code{file_search (@var{filename})} busca en los directorios de b@'usqueda por defecto,
 
574
que son los especificados por las variables @code{file_search_maxima}, @code{file_search_lisp} y @code{file_search_demo}.
 
575
 
 
576
La funci@'on @code{file_search} analiza primero si el nombre del argumento existe antes de hacerlo coincidir con los comodines de los patrones de b@'usqueda de archivos.
 
577
V@'ease @code{file_search_maxima} para m@'as informaci@'on sobre patrones de b@'usqueda de archivos.
 
578
 
 
579
El argumento @var{filename} puede ser una ruta con nombre de archivo,
 
580
o simplemente el nombre del archivo, o, si el directorio de b@'usqueda de archivo incluye un patr@'on de b@'usqueda, es suficiente con el nombre de archivo sin extensi@'on.
 
581
Por ejemplo,
 
582
 
 
583
@example
 
584
file_search ("/home/wfs/special/zeta.mac");
 
585
file_search ("zeta.mac");
 
586
file_search ("zeta");
 
587
@end example
 
588
 
 
589
todos buscan el mismo archivo, dando por hecho que el archivo existe y que @code{/home/wfs/special/###.mac}
 
590
est@'a en @code{file_search_maxima}.
 
591
 
 
592
La llamada @code{file_search (@var{filename}, @var{pathlist})} busca solamente en los directorios especificados por @var{pathlist}, que es una lista de cadenas.
 
593
El argumento @var{pathlist} ignora los directorios de b@'usqueda por defecto, de manera que si se da la lista de rutas, @code{file_search} busca solamente en ellas y no en los directorios por defecto.
 
594
Incluso si hay un @'unico directorio en @var{pathlist}, debe ser suministrado como una lista de un @'unico elemento.
 
595
 
 
596
El usuario puede modificar los directorios de b@'usqueda por defecto; v@'ease para ello See @code{file_search_maxima}.
 
597
 
 
598
La funci@'on @code{file_search} es llamada por @code{load} con los directorios de b@'usqueda @code{file_search_maxima} y @code{file_search_lisp}.
 
599
 
 
600
@end deffn
 
601
 
 
602
@defvr {Variable opcional} file_search_maxima
 
603
@defvrx {Variable opcional} file_search_lisp
 
604
@defvrx {Variable opcional} file_search_demo
 
605
Estas variables especifican listas de directorios en los que deben buscar la funciones  @code{load}, @code{demo} y algunas otras. Los valores por defecto de estas variables nombran directorios de la instalaci@'on de Maxima.
 
606
 
 
607
El usuario puede modificar estas variables, bien reemplazando los valores por defecto, bien a@~nadiendo nuevos directorios.
 
608
Por ejemplo,
 
609
 
 
610
@example
 
611
file_search_maxima: ["/usr/local/foo/###.mac",
 
612
    "/usr/local/bar/###.mac"]$
 
613
@end example
 
614
 
 
615
reemplaza el valor por defecto de @code{file_search_maxima}, mintras que
 
616
 
 
617
@example
 
618
file_search_maxima: append (file_search_maxima,
 
619
    ["/usr/local/foo/###.mac", "/usr/local/bar/###.mac"])$
 
620
@end example
 
621
 
 
622
a@~nade dos directorios m@'as. Puede ser conveniente colocar una expresi@'on como esta en el archivo @code{maxima-init.mac}, de manera que la ruta de b@'usqueda de ficheros se asigne autom@'aticamente cada vez que arranca Maxima.
 
623
 
 
624
Se pueden especificar varias extensiones de archivos y rutas con comodines especiales.
 
625
La cadena @code{###} representa el nombre del archivo buscado y una lista separada de comas y encerrada entre llaves,  @code{@{foo,bar,baz@}} representa m@'ultiples cadenas.
 
626
Por ejemplo, suponiendo que se busca el nombre @code{neumann},
 
627
 
 
628
@example
 
629
"/home/@{wfs,gcj@}/###.@{lisp,mac@}"
 
630
@end example
 
631
 
 
632
se interpreta como @code{/home/wfs/neumann.lisp}, @code{/home/gcj/neumann.lisp}, @code{/home/wfs/neumann.mac} y @code{/home/gcj/neumann.mac}.
 
633
 
 
634
@end defvr
 
635
 
 
636
@deffn {Funci@'on} file_type (@var{filename})
 
637
Devuelve una descripci@'on del contenido de @var{filename} basada en la extensi@'on, sin intentar abrir el archivo para inspeccionar su contenido.
 
638
 
 
639
El valor que la funci@'on retorna puede ser cualquiera de los siguientes: @code{object}, @code{lisp} o @code{maxima}.
 
640
Si la extensi@'on comienza por @code{m} o @code{d}, @code{file_type} devuelve @code{maxima}.
 
641
Si la extensi@'on comienza por @code{l}, @code{file_type} devuelve @code{lisp}.
 
642
En cualquier otro caso, @code{file_type} devuelve @code{object}.
 
643
 
 
644
@end deffn
 
645
 
 
646
 
 
647
@deffn {Funci@'on} grind (@var{expr})
 
648
@deffnx {Variable opcional} grind
 
649
La funci@'on @code{grind} imprime @var{expr}
 
650
en la consola en un formato admisible como entrada para Maxima. La funci@'on 
 
651
@code{grind} devuelve siempre @code{done}.
 
652
 
 
653
Cuando @var{expr} es el nombre de una funci@'on o macro, @code{grind}
 
654
muestra la definici@'on de la funci@'on o de la macro en lugar de s@'olo
 
655
su nombre.
 
656
 
 
657
V@'ease tambi@'en @code{string}, que devuelve una cadena en lugar de imprimir la salida. La funci@'on
 
658
@code{grind} intenta imprimir la expresi@'on de forma que sea lago m@'as sencilla de leer que la salida de @code{string}.
 
659
 
 
660
Cuando la variable @code{grind} vale @code{true},
 
661
la salida de @code{string} y @code{stringout} tienen el mismo formato que la de @code{grind};
 
662
en caso contrario no se formatea la salida de esas funciones.
 
663
El valor por defecto de la variable @code{grind} es @code{false}.
 
664
 
 
665
La variable @code{grind} tambi@'en se puede utilizar como  argumento en @code{playback}.
 
666
Si @code{grind} est@'a presente,
 
667
@code{playback} imprime las expresiones de entrada en el mismo formato que lo hace la funci@'on @code{grind};
 
668
en caso contrario no se formatean la expresiones de entrada.
 
669
 
 
670
La funci@'on @code{grind} eval@'ua sus argumentos.
 
671
 
 
672
Ejemplos:
 
673
 
 
674
@c ===beg===
 
675
@c aa + 1729;
 
676
@c grind (%);
 
677
@c [aa, 1729, aa + 1729];
 
678
@c grind (%);
 
679
@c matrix ([aa, 17], [29, bb]);
 
680
@c grind (%);
 
681
@c set (aa, 17, 29, bb);
 
682
@c grind (%);
 
683
@c exp (aa / (bb + 17)^29);
 
684
@c grind (%);
 
685
@c expr: expand ((aa + bb)^10);
 
686
@c grind (expr);
 
687
@c string (expr);
 
688
@c cholesky (A):= block ([n : length (A), L : copymatrix (A),
 
689
@c p : makelist (0, i, 1, length (A))], for i thru n do for j : i thru n do
 
690
@c (x : L[i, j], x : x - sum (L[j, k] * L[i, k], k, 1, i - 1), if i = j then
 
691
@c p[i] : 1 / sqrt(x) else L[j, i] : x * p[i]), for i thru n do L[i, i] : 1 / p[i],
 
692
@c for i thru n do for j : i + 1 thru n do L[i, j] : 0, L)$
 
693
@c grind (cholesky);
 
694
@c string (fundef (cholesky));
 
695
@c ===end===
 
696
@example
 
697
(%i1) aa + 1729;
 
698
(%o1)                       aa + 1729
 
699
(%i2) grind (%);
 
700
aa+1729$
 
701
(%o2)                         done
 
702
(%i3) [aa, 1729, aa + 1729];
 
703
(%o3)                 [aa, 1729, aa + 1729]
 
704
(%i4) grind (%);
 
705
[aa,1729,aa+1729]$
 
706
(%o4)                         done
 
707
(%i5) matrix ([aa, 17], [29, bb]);
 
708
                           [ aa  17 ]
 
709
(%o5)                      [        ]
 
710
                           [ 29  bb ]
 
711
(%i6) grind (%);
 
712
matrix([aa,17],[29,bb])$
 
713
(%o6)                         done
 
714
(%i7) set (aa, 17, 29, bb);
 
715
(%o7)                   @{17, 29, aa, bb@}
 
716
(%i8) grind (%);
 
717
@{17,29,aa,bb@}$
 
718
(%o8)                         done
 
719
(%i9) exp (aa / (bb + 17)^29);
 
720
                                aa
 
721
                            -----------
 
722
                                     29
 
723
                            (bb + 17)
 
724
(%o9)                     %e
 
725
(%i10) grind (%);
 
726
%e^(aa/(bb+17)^29)$
 
727
(%o10)                        done
 
728
(%i11) expr: expand ((aa + bb)^10);
 
729
         10           9        2   8         3   7         4   6
 
730
(%o11) bb   + 10 aa bb  + 45 aa  bb  + 120 aa  bb  + 210 aa  bb
 
731
         5   5         6   4         7   3        8   2
 
732
 + 252 aa  bb  + 210 aa  bb  + 120 aa  bb  + 45 aa  bb
 
733
        9        10
 
734
 + 10 aa  bb + aa
 
735
(%i12) grind (expr);
 
736
bb^10+10*aa*bb^9+45*aa^2*bb^8+120*aa^3*bb^7+210*aa^4*bb^6
 
737
     +252*aa^5*bb^5+210*aa^6*bb^4+120*aa^7*bb^3+45*aa^8*bb^2
 
738
     +10*aa^9*bb+aa^10$
 
739
(%o12)                        done
 
740
(%i13) string (expr);
 
741
(%o13) bb^10+10*aa*bb^9+45*aa^2*bb^8+120*aa^3*bb^7+210*aa^4*bb^6\
 
742
+252*aa^5*bb^5+210*aa^6*bb^4+120*aa^7*bb^3+45*aa^8*bb^2+10*aa^9*\
 
743
bb+aa^10
 
744
(%i14) cholesky (A):= block ([n : length (A), L : copymatrix (A),
 
745
p : makelist (0, i, 1, length (A))], for i thru n do for j : i thru n do
 
746
(x : L[i, j], x : x - sum (L[j, k] * L[i, k], k, 1, i - 1), if i = j then
 
747
p[i] : 1 / sqrt(x) else L[j, i] : x * p[i]), for i thru n do L[i, i] : 1 / p[i],
 
748
for i thru n do for j : i + 1 thru n do L[i, j] : 0, L)$
 
749
(%i15) grind (cholesky);
 
750
cholesky(A):=block(
 
751
         [n:length(A),L:copymatrix(A),
 
752
          p:makelist(0,i,1,length(A))],
 
753
         for i thru n do
 
754
             (for j from i thru n do
 
755
                  (x:L[i,j],x:x-sum(L[j,k]*L[i,k],k,1,i-1),
 
756
                   if i = j then p[i]:1/sqrt(x)
 
757
                       else L[j,i]:x*p[i])),
 
758
         for i thru n do L[i,i]:1/p[i],
 
759
         for i thru n do (for j from i+1 thru n do L[i,j]:0),L)$
 
760
(%o15)                        done
 
761
(%i16) string (fundef (cholesky));
 
762
(%o16) cholesky(A):=block([n:length(A),L:copymatrix(A),p:makelis\
 
763
t(0,i,1,length(A))],for i thru n do (for j from i thru n do (x:L\
 
764
[i,j],x:x-sum(L[j,k]*L[i,k],k,1,i-1),if i = j then p[i]:1/sqrt(x\
 
765
) else L[j,i]:x*p[i])),for i thru n do L[i,i]:1/p[i],for i thru \
 
766
n do (for j from i+1 thru n do L[i,j]:0),L)
 
767
@end example
 
768
@end deffn
 
769
 
 
770
 
 
771
@defvr {Variable opcional} ibase
 
772
Valor por defecto: 10
 
773
 
 
774
Los enteros que se escriban en Maxima se interpretan como dados en base @code{ibase}.
 
775
 
 
776
A la variable @code{ibase} se le puede asignar cualquier entero entre 2 y 35 (decimal), ambos inclusive.
 
777
@c WHY NOT 36, BY THE WAY ??
 
778
Si @code{ibase} es mayor que 10, las cifras ser@'an los n@'umeros decimales entre 0 y 9, m@'as las letras may@'usculas A, B, C, ..., sg@'un sea necesario.
 
779
Las cifras en base 35, la mayor base que acepta Maxima, son los d@'{@dotless{i}}gitos de 0 a 9 y las letras de A a Y.
 
780
@c HOW, EXACTLY, DOES ONE TYPE IN THE LETTERS ??
 
781
@c ibase: 11$ 1A; YIELDS AN ERROR
 
782
@c \1A; #1A; \#1A; DON'T WORK EITHER
 
783
 
 
784
V@'ease tambi@'en @code{obase}.
 
785
 
 
786
@c NEED EXAMPLES HERE
 
787
@end defvr
 
788
 
 
789
@defvr {Variable opcional} inchar
 
790
Valor por defecto: @code{%i}
 
791
 
 
792
La variable @code{inchar} es el prefijo de las etiquetas de las expresiones introducidas por el usuario.
 
793
Maxima crea autom@'aticamente una etiqueta para cada expresi@'on de entrada concatenando @code{inchar} y @code{linenum}; a
 
794
@code{inchar} se le puede asignar cualquier s@'{@dotless{i}}mbolo o cadena, no necesariamente un carac@'acter sencillo.
 
795
 
 
796
@example
 
797
(%i1) inchar: "input";
 
798
(%o1)                                input
 
799
(input1) expand ((a+b)^3);
 
800
                            3        2      2      3
 
801
(%o1)                      b  + 3 a b  + 3 a  b + a
 
802
(input2)
 
803
@end example
 
804
 
 
805
V@'ease tambi@'en @code{labels}.
 
806
 
 
807
@end defvr
 
808
 
 
809
@deffn {Funci@'on} ldisp (@var{expr_1}, ..., @var{expr_n})
 
810
Muestra las expresiones @var{expr_1}, ..., @var{expr_n} en la consola con el formato de salida;
 
811
@code{ldisp} asigna una etiqueta a cada argumento y devuelve la lista de etiquetas.
 
812
 
 
813
V@'ease tambi@'en @code{disp}.
 
814
 
 
815
@example
 
816
(%i1) e: (a+b)^3;
 
817
                                   3
 
818
(%o1)                       (b + a)
 
819
(%i2) f: expand (e);
 
820
                     3        2      2      3
 
821
(%o2)               b  + 3 a b  + 3 a  b + a
 
822
(%i3) ldisp (e, f);
 
823
                                   3
 
824
(%t3)                       (b + a)
 
825
 
 
826
                     3        2      2      3
 
827
(%t4)               b  + 3 a b  + 3 a  b + a
 
828
 
 
829
(%o4)                      [%t3, %t4]
 
830
(%i4) %t3;
 
831
                                   3
 
832
(%o4)                       (b + a)
 
833
(%i5) %t4;
 
834
                     3        2      2      3
 
835
(%o5)               b  + 3 a b  + 3 a  b + a
 
836
@end example
 
837
 
 
838
@end deffn
 
839
 
 
840
@deffn {Funci@'on} ldisplay (@var{expr_1}, ..., @var{expr_n})
 
841
Muestra las expresiones @var{expr_1}, ..., @var{expr_n} en la consola con el formato de salida.
 
842
Cad expresi@'on se muestra como una ecuaci@'on de la forma @code{lhs = rhs}
 
843
en la que @code{lhs} es uno de los argumentos de @code{ldisplay}
 
844
y @code{rhs} su valor. Normalmente, cada argumento ser@'a el nombre de una variable. La funci@'on
 
845
@code{ldisp} asigna una etiqueta a cada ecuaci@'on y devuelve la lista de etiquetas.
 
846
 
 
847
V@'ease tambi@'en @code{display}.
 
848
 
 
849
@example
 
850
(%i1) e: (a+b)^3;
 
851
                                   3
 
852
(%o1)                       (b + a)
 
853
(%i2) f: expand (e);
 
854
                     3        2      2      3
 
855
(%o2)               b  + 3 a b  + 3 a  b + a
 
856
(%i3) ldisplay (e, f);
 
857
                                     3
 
858
(%t3)                     e = (b + a)
 
859
 
 
860
                       3        2      2      3
 
861
(%t4)             f = b  + 3 a b  + 3 a  b + a
 
862
 
 
863
(%o4)                      [%t3, %t4]
 
864
(%i4) %t3;
 
865
                                     3
 
866
(%o4)                     e = (b + a)
 
867
(%i5) %t4;
 
868
                       3        2      2      3
 
869
(%o5)             f = b  + 3 a b  + 3 a  b + a
 
870
@end example
 
871
 
 
872
@end deffn
 
873
 
 
874
@defvr {Variable opcional} linechar
 
875
Valor por defecto: @code{%t}
 
876
 
 
877
La variable @code{linechar} es el prefijo de las etiquetas que genera Maxima para expresiones intermedias. Cuando sea necesario, Maxima crear@'a una etiqueta para cada expresi@'on intermedia concatenando @code{linechar} y @code{linenum}. A 
 
878
@code{linechar} se le puede asignar cualquier cadena o s@'{@dotless{i}}mbolo, no necesariamente un car@'acter simple.
 
879
 
 
880
Las expresiones intermedias pueden ser mostradas o no.
 
881
V@'eanse tambi@'en @code{programmode} y @code{labels}.
 
882
 
 
883
@end defvr
 
884
 
 
885
@defvr {Variable opcional} linel
 
886
Valor por defecto: 79
 
887
 
 
888
La variable @code{linel} es la anchura (medida en n@'umero de caracteres) de la consola que se le da a Maxima para que muestre las expresiones. A @code{linel} se le puede asignar cualquier valor, pero si @'este es muy peque@~no o grande resultar@'a de poca utilidad. El texto que impriman las funciones internas de Maxima, como los mensajes de error y las salidas de la funci@'on @code{describe}, no se ve afectado por el valor de @code{linel}.
 
889
 
 
890
@end defvr
 
891
 
 
892
@defvr {Variable opcional} lispdisp
 
893
Valor por defecto: @code{false}
 
894
 
 
895
Si @code{lispdisp} vale @code{true}, los s@'{@dotless{i}}mbolos de Lisp se muestran precedidos del car@'acter de interrogaci@'on @code{?}. En caso contrario, los s@'{@dotless{i}}mbolos de Lisp se muestran sin esta marca.
 
896
 
 
897
Ejemplos:
 
898
 
 
899
@c ===beg===
 
900
@c lispdisp: false$
 
901
@c ?foo + ?bar;
 
902
@c lispdisp: true$
 
903
@c ?foo + ?bar;
 
904
@c ===end===
 
905
@example
 
906
(%i1) lispdisp: false$
 
907
(%i2) ?foo + ?bar;
 
908
(%o2)                       foo + bar
 
909
(%i3) lispdisp: true$
 
910
(%i4) ?foo + ?bar;
 
911
(%o4)                      ?foo + ?bar
 
912
@end example
 
913
 
 
914
@end defvr
 
915
 
 
916
@deffn {Funci@'on} load (@var{filename})
 
917
Eval@'ua las expresiones del archivo @var{filename}, trayendo variables, funciones y otros objetos a Maxima.
 
918
Una asignaci@'on hecha previamente a una variable en Maxima ser@'a destruida por otra asignaci@'on que se le haga en @var{filename}. Para encontrar el fichero, @code{load} llama a @code{file_search} con @code{file_search_maxima} y @code{file_search_lisp} como directorios de b@'usqueda. Si la llamada a @code{load} funciona correctamente, devuelve el nombre del fichero; en caso contrario, @code{load} muestra un mensaje de error.
 
919
 
 
920
La funci@'on @code{load} trabaja indistintamente con c@'odigo Lisp y Maxima.
 
921
Los ficheros creados con @code{save}, @code{translate_file} y @code{compile_file}, que crea c@'odigo Lisp,
 
922
y @code{stringout}, que crea c@'odigo Maxima, todos ellos pueden ser procesados por @code{load}. La funci@'on
 
923
@code{load} llama a @code{loadfile} para cargar archivos en Lisp y a  @code{batchload} para cargar archivos en Maxima.
 
924
 
 
925
La funci@'on @code{load} no reconoce las construcciones de tipo @code{:lisp} en
 
926
ficheros de Maxima. Adem@'as, mientras se est@'a procesando @var{filename},
 
927
las variables globales @code{_}, @code{__}, @code{%} y @code{%th} mantienen los
 
928
valores que ten@'{@dotless{i}}an cuando se realiz@'o la llamada a @code{load}.
 
929
 
 
930
V@'eanse tambi@'en @code{loadfile}, @code{batch}, @code{batchload} y @code{demo};
 
931
@code{loadfile} procesa archivos en Lisp; @code{batch}, @code{batchload} y @code{demo} procesan archivos en Maxima.
 
932
 
 
933
V@'ease @code{file_search} para m@'as detalles sobre el mecanismo de b@'usqueda de archivos.
 
934
 
 
935
La funci@'on @code{load} eval@'ua sus argumentos.
 
936
 
 
937
@end deffn
 
938
 
 
939
@deffn {Funci@'on} loadfile (@var{filename})
 
940
Eval@'ua las expresiones Lisp del archivo @var{filename}. La funci@'on
 
941
@code{loadfile} no llama a @code{file_search}, de manera que @code{filename} debe incluir la extensi@'on del archivo y su ruta completa.
 
942
 
 
943
La funci@'on @code{loadfile} puede procesar ficheros creados por  @code{save}, @code{translate_file} y @code{compile_file}.
 
944
Puede ser m@'as conveniente utilizar @code{load} en lugar de @code{loadfile}.
 
945
 
 
946
La funci@'on @code{loadfile} no eval@'ua su argumento, de manera que @code{filename} debe ser una cadena, no una variable que la contenga. La utilizaci@'on del operador comilla-comilla s@'{@dotless{i}} permite la evaluaci@'on.
 
947
 
 
948
@end deffn
 
949
 
 
950
@defvr {Variable opcional} loadprint
 
951
Valor por defecto: @code{true}
 
952
 
 
953
La variable @code{loadprint} indica si mostrar un mensaje cuando se carga un archivo.
 
954
 
 
955
@itemize @bullet
 
956
@item
 
957
Si @code{loadprint} vale @code{true}, se muestra siempre un mensaje.
 
958
@item
 
959
Si @code{loadprint} vale @code{'loadfile}, muestra un mensaje s@'olo si el archivo es cargado con la funci@'on @code{loadfile}.
 
960
@item
 
961
Si @code{loadprint} vale @code{'autoload}, muestra un mensaje s@'olo cuandi un archivo se carga autom@'aticamente. V@'ease  @code{setup_autoload}.
 
962
@item
 
963
Si @code{loadprint} vale @code{false}, nunca mostrar@'a mensajes.
 
964
@end itemize
 
965
 
 
966
@end defvr
 
967
 
 
968
@defvr {Variable opcional} obase
 
969
Valor por defecto: 10
 
970
 
 
971
La variable @code{obase} es la base de los enteros mostrados por Maxima; se le puede asignar cualquier entero entre 2 y 35 (decimal), ambos inclusive. Si @code{obase} es mayor que 10, las cifras ser@'an los n@'umeros decimales entre 0 y 9, m@'as las letras may@'usculas A, B, C, ..., sg@'un sea necesario.
 
972
Las cifras en base 35, la mayor base que acepta Maxima, son los d@'{@dotless{i}}gitos de 0 a 9 y las letras de A a Y.
 
973
 
 
974
V@'ease tambi@'en @code{ibase}.
 
975
 
 
976
@c NEED EXAMPLES HERE
 
977
@end defvr
 
978
 
 
979
@defvr {Variable opcional} outchar
 
980
Valor por defecto: @code{%o}
 
981
 
 
982
La variable @code{outchar} es el prefijo de las etiquetas de las expresiones calculadas por Maxima.
 
983
Maxima crea autom@'aticamente una etiqueta para cada expresi@'on calculada concatenando @code{outchar} y @code{linenum}; a
 
984
@code{outchar} se le puede asignar cualquier s@'{@dotless{i}}mbolo o cadena, no necesariamente un carac@'acter sencillo.
 
985
 
 
986
@example
 
987
(%i1) outchar: "output";
 
988
(output1)                           output
 
989
(%i2) expand ((a+b)^3);
 
990
                            3        2      2      3
 
991
(output2)                  b  + 3 a b  + 3 a  b + a
 
992
(%i3)
 
993
@end example
 
994
 
 
995
V@'ease tambi@'en @code{labels}.
 
996
 
 
997
@end defvr
 
998
 
 
999
@defvr {Variable opcional} packagefile
 
1000
Valor por defecto: @code{false}
 
1001
 
 
1002
Los desarrolladores de paquetes que utilizan  @code{save}
 
1003
o @code{translate} para crear paquetes (ficheros) que van a ser utilizados por terceros pueden hacer @code{packagefile: true} para evitar que se a@~nada informaci@'on a la listas de informaci@'on de Maxima (por ejemplo, @code{values},
 
1004
@code{functions}) excepto all@'{@dotless{i}} donde sea necesario cuando el archivo sea cargado en memoria.
 
1005
@c FALTA COMPLETAR ESTE PARRAFO
 
1006
 
 
1007
@end defvr
 
1008
 
 
1009
@defvr {Variable opcional} pfeformat
 
1010
Valor por defecto: @code{false}
 
1011
 
 
1012
Si @code{pfeformat} vale @code{true}, una fracci@'on de enteros ser@'a mostrada con el car@'acter de barra inclinada @code{/} entre ellos.
 
1013
 
 
1014
 
 
1015
@example
 
1016
(%i1) pfeformat: false$
 
1017
(%i2) 2^16/7^3;
 
1018
                              65536
 
1019
(%o2)                         -----
 
1020
                               343
 
1021
(%i3) (a+b)/8;
 
1022
                              b + a
 
1023
(%o3)                         -----
 
1024
                                8
 
1025
(%i4) pfeformat: true$ 
 
1026
(%i5) 2^16/7^3;
 
1027
(%o5)                       65536/343
 
1028
(%i6) (a+b)/8;
 
1029
(%o6)                      1/8 (b + a)
 
1030
@end example
 
1031
 
 
1032
@end defvr
 
1033
 
 
1034
@deffn {Funci@'on} print (@var{expr_1}, ..., @var{expr_n})
 
1035
Eval@'ua y muestra las expresiones  @var{expr_1}, ..., @var{expr_n} secuencialmente de izquierda a derecha, comenzando la impresi@'on por el borde izquierdo de la consola.
 
1036
 
 
1037
El valor devuelto por @code{print} es el valor de su @'ultimo argumento. La funci@'on @code{print} no genera etiquetas para las expresiones intermedias.
 
1038
 
 
1039
V@'eanse tambi@'en @code{display}, @code{disp}, @code{ldisplay} y @code{ldisp}, que muestran una expresi@'on por l@'{@dotless{i}}nea, mientras que @code{print} trata de mostrar dos o m@'as expresiones por l@'{@dotless{i}}nea.
 
1040
 
 
1041
Para mostrar el contenido de un archivo v@'ease @code{printfile}.
 
1042
 
 
1043
@example
 
1044
(%i1) r: print ("(a+b)^3 is", expand ((a+b)^3), "log (a^10/b) is", radcan (log (a^10/b)))$
 
1045
            3        2      2      3
 
1046
(a+b)^3 is b  + 3 a b  + 3 a  b + a  log (a^10/b) is 
 
1047
 
 
1048
                                              10 log(a) - log(b) 
 
1049
(%i2) r;
 
1050
(%o2)                  10 log(a) - log(b)
 
1051
(%i3) disp ("(a+b)^3 is", expand ((a+b)^3), "log (a^10/b) is", radcan (log (a^10/b)))$
 
1052
                           (a+b)^3 is
 
1053
 
 
1054
                     3        2      2      3
 
1055
                    b  + 3 a b  + 3 a  b + a
 
1056
 
 
1057
                         log (a^10/b) is
 
1058
 
 
1059
                       10 log(a) - log(b)
 
1060
@end example
 
1061
 
 
1062
@end deffn
 
1063
 
 
1064
@deffn {Funci@'on} read (@var{expr_1}, ..., @var{expr_n})
 
1065
Imprime @var{expr_1}, ..., @var{expr_n} y a continuaci@'on lee una expresi@'on desde la consola y devuelve la expresi@'on evaluada. La expresi@'on termina con un punto y coma @code{;} o con el s@'{@dotless{i}}mbolo de d@'olar @code{$}.
 
1066
 
 
1067
V@'ease tambi@'en @code{readonly}.
 
1068
 
 
1069
@example
 
1070
(%i1) foo: 42$ 
 
1071
(%i2) foo: read ("foo vale", foo, " -- nuevo valor.")$
 
1072
foo vale 42  -- nuevo valor. 
 
1073
(a+b)^3;
 
1074
(%i3) foo;
 
1075
                                     3
 
1076
(%o3)                         (b + a)
 
1077
@end example
 
1078
 
 
1079
@end deffn
 
1080
 
 
1081
@deffn {Funci@'on} readonly (@var{expr_1}, ..., @var{expr_n})
 
1082
Imprime @var{expr_1}, ..., @var{expr_n} y a continuaci@'on lee una expresi@'on desde la consola y devuelve la expresi@'on sin evaluar. La expresi@'on termina con un punto y coma @code{;} o con el s@'{@dotless{i}}mbolo de d@'olar @code{$}.
 
1083
 
 
1084
@example
 
1085
(%i1) aa: 7$
 
1086
(%i2) foo: readonly ("Introducir expresion:");
 
1087
Introducir expresion: 
 
1088
2^aa;
 
1089
                                  aa
 
1090
(%o2)                            2
 
1091
(%i3) foo: read ("Introducir expresion:");
 
1092
Introducir expresion: 
 
1093
2^aa;
 
1094
(%o3)                            128
 
1095
@end example
 
1096
 
 
1097
V@'ease tambi@'en @code{read}.
 
1098
 
 
1099
@end deffn
 
1100
 
 
1101
@deffn {Funci@'on} reveal (@var{expr}, @var{nivel})
 
1102
Reemplaza partes de @var{expr} al @var{nivel} especificado y las sutituye por descripciones cortas.
 
1103
 
 
1104
@itemize @bullet
 
1105
@item
 
1106
Las sumas y restas se reemplazan por @code{sum(@var{n})},
 
1107
siendo @var{n} el n@'umero de t@'erminos de la suma.
 
1108
@item
 
1109
Los productos se reemplazan por @code{product(@var{n})},
 
1110
siendo @var{n} el n@'umero de factores del producto.
 
1111
@item
 
1112
Las potencias se reemplazan por @code{expt}. 
 
1113
@item
 
1114
Los cocientes se reemplazan por @code{quotient}.
 
1115
@item
 
1116
El s@'{@dotless{i}}mbolo negativo se reemplaza por @code{negterm}.
 
1117
@end itemize
 
1118
 
 
1119
Si el entero  @var{depth} es mayor o igual que la profundidad m@'axima de @var{expr},
 
1120
@code{reveal (@var{expr}, @var{depth})} devuelve @var{expr} sin modificar.
 
1121
 
 
1122
La funci@'on @code{reveal} eval@'ua sus argumentos y devuelve la expresi@'on con las modificaciones solicitadas.
 
1123
 
 
1124
Ejemplo:
 
1125
 
 
1126
@example
 
1127
(%i1) e: expand ((a - b)^2)/expand ((exp(a) + exp(b))^2);
 
1128
                          2            2
 
1129
                         b  - 2 a b + a
 
1130
(%o1)               -------------------------
 
1131
                        b + a     2 b     2 a
 
1132
                    2 %e      + %e    + %e
 
1133
(%i2) reveal (e, 1);
 
1134
(%o2)                       quotient
 
1135
(%i3) reveal (e, 2);
 
1136
                             sum(3)
 
1137
(%o3)                        ------
 
1138
                             sum(3)
 
1139
(%i4) reveal (e, 3);
 
1140
                     expt + negterm + expt
 
1141
(%o4)               ------------------------
 
1142
                    product(2) + expt + expt
 
1143
(%i5) reveal (e, 4);
 
1144
                       2                 2
 
1145
                      b  - product(3) + a
 
1146
(%o5)         ------------------------------------
 
1147
                         product(2)     product(2)
 
1148
              2 expt + %e           + %e
 
1149
(%i6) reveal (e, 5);
 
1150
                         2            2
 
1151
                        b  - 2 a b + a
 
1152
(%o6)              --------------------------
 
1153
                       sum(2)     2 b     2 a
 
1154
                   2 %e       + %e    + %e
 
1155
(%i7) reveal (e, 6);
 
1156
                          2            2
 
1157
                         b  - 2 a b + a
 
1158
(%o7)               -------------------------
 
1159
                        b + a     2 b     2 a
 
1160
                    2 %e      + %e    + %e
 
1161
@end example
 
1162
 
 
1163
@end deffn
 
1164
 
 
1165
@defvr {Variable opcional} rmxchar
 
1166
Valor por defecto: @code{]}
 
1167
 
 
1168
La variable @code{rmxchar} es el car@'acter que se dibuja al lado derecho de una matriz.
 
1169
 
 
1170
V@'ease tambi@'en @code{lmxchar}.
 
1171
 
 
1172
@end defvr
 
1173
 
 
1174
@deffn {Funci@'on} save (@var{filename}, @var{name_1}, @var{name_2}, @var{name_3}, ...)
 
1175
@deffnx {Funci@'on} save (@var{filename}, values, functions, labels, ...)
 
1176
@deffnx {Funci@'on} save (@var{filename}, [@var{m}, @var{n}])
 
1177
@deffnx {Funci@'on} save (@var{filename}, @var{name_1}=@var{expr_1}, ...)
 
1178
@deffnx {Funci@'on} save (@var{filename}, all)
 
1179
Alamacena los valores actuales de @var{name_1}, @var{name_2}, @var{name_3}, ..., en el archivo @var{filename}.
 
1180
Los argumentos son nombres de variables, funciones u otros objetos.
 
1181
Si un nombre no tiene un valor o una funci@'on asociado a @'el, entonces se ignora.
 
1182
 
 
1183
La funci@'on @code{save} devuelve @var{filename}.
 
1184
 
 
1185
La funci@'on @code{save} almacena datos en forma de expresiones Lisp.
 
1186
Los datos almacenados por @code{save} pueden recuperarse con @code{load (@var{filename})}.
 
1187
El resultado de ejecutar  @code{save} cuando @var{filename} ya existe depende del soporte Lisp implementado;
 
1188
el archivo puede ser sobreescrito o que @code{save} env@'{@dotless{i}}e un mesaje de error.
 
1189
 
 
1190
La llamada @code{save (@var{filename}, values, functions, labels, ...)}
 
1191
almacena los elementos cuyos nombres son @code{values}, @code{functions}, @code{labels}, etc.
 
1192
Los nombres pueden ser cualesquiera de los especificados por la variable @code{infolists};
 
1193
@code{values} incluye todas las variables definidas por el usuario.
 
1194
 
 
1195
La llamada @code{save (@var{filename}, [@var{m}, @var{n}])} almacena los valores de las etiquetas de entrada y salida desde @var{m} hasta @var{n}.
 
1196
N@'otese que @var{m} y @var{n} deben ser n@'umeros.
 
1197
Las etiquetas de entrada y salida tambi@'en se pueden almacenar una a una, por ejemplo, @code{save ("foo.1", %i42, %o42)}.
 
1198
La llamada @code{save (@var{filename}, labels)} almacena todas las etiquetas de entrada y salida.
 
1199
Cuando las etiquetas almacenadas en el archivo sean posteriormente recuperadas, se sobreescribir@'an las activas en ese momento.
 
1200
 
 
1201
La llamada @code{save (@var{filename}, @var{name_1}=@var{expr_1}, @var{name_2}=@var{expr_2}, ...)}
 
1202
almacena los valores de @var{expr_1}, @var{expr_2}, ...,
 
1203
con los nombres @var{name_1}, @var{name_2}, ....
 
1204
Es @'util hacer este tipo de llamada para con etiquetas de entrada y salida, por ejemplo, @code{save ("foo.1", aa=%o88)}.
 
1205
El miembro derecho de la igualdad puede ser cualquier expresi@'on, que ser@'a evaluada.
 
1206
Esta llamada a la funci@'on @code{save} no incorpora nuevos nombres a la sesi@'on actual de Maxima,
 
1207
simplemente los almacena en el archivo @var{filename}.
 
1208
 
 
1209
Todas estas formas de llamar a la funci@'on @code{save} se pueden combinar a voluntad.
 
1210
Por ejemplo, @code{save (@var{filename}, aa, bb, cc=42, functions, [11, 17])}.
 
1211
 
 
1212
La llamada @code{save (@var{filename}, all)} almacena el estado actual de Maxima, lo que incluye todas las variables definidas por el usuario, funciones, arreglos, etc., as@'{@dotless{i}} como algunos objetos definidos autom@'aticamente.
 
1213
Los elementos almacenados incluyen variables del sistema, como @code{file_search_maxima} o @code{showtime}, si han sido modificadas por el usuario. V@'ease @code{myoptions}.
 
1214
 
 
1215
La funci@'on @code{save} no eval@'ua sus argumentos.  El argumento @var{filename} debe ser una cadena, no una variable que contenga una cadena. Si se especifican n@'umeros de etiquetas, @'estos deben ser enteros.
 
1216
El operador comilla-comilla @code{'@w{}'}  eval@'ua una variable de cadena devolviendo su valor;
 
1217
por ejemplo, @code{s: "foo.1"$ save (''s, all)$}, y de las variables enteras devuelve sus valores enteros, como en @code{m: 5$ n: 12$ save ("foo.1", [''m, ''n])$}.
 
1218
 
 
1219
@c ANY USE FOR THE FOLLOWING ???
 
1220
@c The following device constructs a list of variables to save and saves them.
 
1221
@c 
 
1222
@c @example
 
1223
@c s: "foo.1"$
 
1224
@c l: ['aa, 'bb, 'cc, 'dd]$
 
1225
@c apply (save, append ([s], l))$
 
1226
@c @end example
 
1227
@end deffn
 
1228
 
 
1229
@defvr {Variable opcional} savedef
 
1230
Valor por defecto: @code{true}
 
1231
 
 
1232
Si @code{savedef} vale @code{true}, se mantiene la versi@'on Maxima de una funci@'on definida por el usuario cuando @'esta se traduce, lo que permite mostrar su c@'odigo con @code{dispfun} y que la funci@'on pueda ser editada.
 
1233
 
 
1234
Si @code{savedef} vale @code{false}, los nombres de las funciones traducidas se eliminan de la lista @code{functions}.
 
1235
 
 
1236
@end defvr
 
1237
 
 
1238
@deffn {Funci@'on} show (@var{expr})
 
1239
Muestra @code{expr} con sus objetos indexados que tengan @'{@dotless{i}}ndices covariantes como sub@'{@dotless{i}}ndices y los contravariantes como super@'{@dotless{i}}ndices.  Los @'{@dotless{i}}ndices derivados se muestran como sub@'{@dotless{i}}ndices, separados por una coma de los covariantes.
 
1240
 
 
1241
@end deffn
 
1242
 
 
1243
@deffn {Funci@'on} showratvars (@var{expr})
 
1244
Devuelve una lista de las variables de expresiones can@'onicas racionales (CRE) en la expresi@'on @code{expr}.
 
1245
 
 
1246
V@'ease tambi@'en @code{ratvars}.
 
1247
 
 
1248
@end deffn
 
1249
 
 
1250
@defvr {Variable opcional} stardisp
 
1251
Valor por defecto: @code{false}
 
1252
 
 
1253
Si @code{stardisp} vale @code{true}, la multiplicaci@'on se muestra con un asterisco @code{*} entre los operandos.
 
1254
 
 
1255
@end defvr
 
1256
 
 
1257
@deffn {Funci@'on} string (@var{expr})
 
1258
Convierte @code{expr} a la notaci@'on lineal de Maxima, tal como si fuese tecleada.
 
1259
 
 
1260
El valor que retorna la funci@'on @code{string} es una cadena, por lo que no puede ser utilizada en los c@'alculos.
 
1261
 
 
1262
@end deffn
 
1263
 
 
1264
@defvr {Variable de Lisp} stringdisp
 
1265
Valor por defecto: @code{false}
 
1266
 
 
1267
Si @code{?stringdisp} vale @code{true},
 
1268
las cadenas alfanum@'ericas se muestran encerradas entre comillas dobles. En caso contrario, no se nuestran las comillas.
 
1269
 
 
1270
La variable @code{?stringdisp} vale siempre @code{true} cuando se muestra la definici@'on de una funci@'on.
 
1271
 
 
1272
La variable @code{?stringdisp} es una variable Lisp, por lo que debe ser escrita precedida de un signo de interrogaci@'on @code{?}.
 
1273
 
 
1274
Ejemplos:
 
1275
 
 
1276
@c ===beg===
 
1277
@c ?stringdisp: false$
 
1278
@c "This is an example string.";
 
1279
@c foo () := print ("This is a string in a function definition.");
 
1280
@c ?stringdisp: true$
 
1281
@c "This is an example string.";
 
1282
@c ===end===
 
1283
@example
 
1284
(%i1) ?stringdisp: false$
 
1285
(%i2) "This is an example string.";
 
1286
(%o2)              This is an example string.
 
1287
(%i3) foo () := print ("This is a string in a function definition.");
 
1288
(%o3) foo() := 
 
1289
              print("This is a string in a function definition.")
 
1290
(%i4) ?stringdisp: true$
 
1291
(%i5) "This is an example string.";
 
1292
(%o5)             "This is an example string."
 
1293
@end example
 
1294
 
 
1295
@end defvr
 
1296
 
 
1297
@deffn {Funci@'on} stringout (@var{filename}, @var{expr_1}, @var{expr_2}, @var{expr_3}, ...)
 
1298
@deffnx {Funci@'on} stringout (@var{filename}, [@var{m}, @var{n}])
 
1299
@deffnx {Funci@'on} stringout (@var{filename}, input)
 
1300
@deffnx {Funci@'on} stringout (@var{filename}, functions)
 
1301
@deffnx {Funci@'on} stringout (@var{filename}, values)
 
1302
 
 
1303
La funci@'on @code{stringout} escribe expresiones en un archivo de la misma forma en que se escribir@'{@dotless{i}}an como expresiones de entrada. El archivo puede ser utilizado entonces como entrada a las funciones @code{batch} o @code{demo}, y puede ser editado para cualquier otro prop@'osito.
 
1304
 
 
1305
La forma general de @code{stringout} escribe los valores de una o m@'as expresiones en el archivo de salida. N@'otese que si una expresi@'on es una variable, solamente se escribir@'a el valor de la variable y no el nombre de @'esta. Como caso especial, y muy @'util en algunas ocasiones, las expresiones pueden ser etiquetas de entrada (@code{%i1}, @code{%i2}, @code{%i3}, ...) o de salida (@code{%o1}, @code{%o2}, @code{%o3}, ...).
 
1306
 
 
1307
Si @code{grind} vale @code{true}, @code{stringout} formatea la salida utilizando @code{grind}. En caso contrario, se utilizar@'a el formato @code{string}. V@'eanse @code{grind} y @code{string}.
 
1308
 
 
1309
La forma especial @code{stringout (@var{filename}, [@var{m}, @var{n}])} escribe los valores de las etiquetas de entrada desde la m hasta la n, ambas inclusive. 
 
1310
 
 
1311
La forma especial @code{stringout (@var{filename}, input)} escribe todas las etiquetas de entrada en el archivo.
 
1312
 
 
1313
La forma especial @code{stringout (@var{filename}, functions)} escribe todas las funciones definidas por el usuario, contenidas en la lista global @code{functions}, en el archivo.
 
1314
 
 
1315
La forma especial @code{stringout (@var{filename}, values)} escribe todas las variables asignadas por el usuario, contenidas en la lista global @code{values}, en el archivo. Cada variable se escribe como una sentencia de asignaci@'on, con el nombre de la variable seguida de dos puntos y a continuaci@'on su valor. N@'otese que la forma general de @code{stringout} no escribe las variables como sentencias de asignaci@'on.
 
1316
 
 
1317
@end deffn
 
1318
 
 
1319
@deffn {Funci@'on} tex (@var{expr})
 
1320
@deffnx {Funci@'on} tex (@var{label})
 
1321
@deffnx {Funci@'on} tex (@var{expr}, @var{filename})
 
1322
@deffnx {Funci@'on} tex (@var{label}, @var{filename})
 
1323
 
 
1324
Devuelve la expresi@'on en un formato apropiado para para ser incorporado a un documento basado en TeX.
 
1325
El resultado que se obtiene es un fragmento de c@'odigo que puede incluirse en un documento mayor, pero que
 
1326
no puede ser procesado aisladamente.
 
1327
 
 
1328
La instrucci@'on @code{tex (@var{expr})} imprime en la consola la representaci@'on en TeX de @var{expr}.
 
1329
 
 
1330
La instrucci@'on @code{tex (@var{label})} imprime en la consola la representaci@'on en TeX de la expresi@'on a la que hace referencia la etiqueta @var{label}, asign@'andole a su vez una etiqueta de ecuaci@'on que ser@'a mostrada al lado izquierdo de la misma. La etiqueta de la expresi@'on en TeX es la misma que la de Maxima.
 
1331
 
 
1332
La instrucci@'on @code{tex (@var{expr}, @var{filename})} a@~nade la representaci@'on TeX de @var{expr} al fichero @var{filename}. La funci@'on @code{tex} no eval@'ua el argumento @var{filename}, pero la doble comilla simple @code{''} fuerza su evaluaci@'on.
 
1333
 
 
1334
La instrucci@'on @code{tex (@var{label}, @var{filename})} a@~nade la representaci@'on TeX de la expresi@'on a la que hace referencia la etiqueta  @var{label}, junto con una etiqueta, al fichero @var{filename}. La funci@'on @code{tex} no eval@'ua el argumento @var{filename}, pero la doble comilla simple @code{''} fuerza su evaluaci@'on.
 
1335
 
 
1336
La funci@'on @code{tex} eval@'ua sus argumentos tras comprobar si se trata de una etiqueta. La doble comilla simple @code{''} fuerza la evaluaci@'on del argumento, anulando la comprobaci@'on sobre la etiqueta.
 
1337
 
 
1338
V@'ease tambi@'en @code{texput}.
 
1339
 
 
1340
Ejemplos:
 
1341
 
 
1342
@example
 
1343
(%i1) integrate (1/(1+x^3), x);
 
1344
                                    2 x - 1
 
1345
                  2            atan(-------)
 
1346
             log(x  - x + 1)        sqrt(3)    log(x + 1)
 
1347
(%o1)      - --------------- + ------------- + ----------
 
1348
                    6             sqrt(3)          3
 
1349
(%i2) tex (%o1);
 
1350
$$-@{@{\log \left(x^2-x+1\right)@}\over@{6@}@}+@{@{\arctan \left(@{@{2\,x-1
 
1351
 @}\over@{\sqrt@{3@}@}@}\right)@}\over@{\sqrt@{3@}@}@}+@{@{\log \left(x+1\right)
 
1352
 @}\over@{3@}@}\leqno@{\tt (\%o1)@}$$
 
1353
(%o2)                          (\%o1)
 
1354
(%i3) tex (integrate (sin(x), x));
 
1355
$$-\cos x$$
 
1356
(%o3)                           false
 
1357
(%i4) tex (%o1, "foo.tex");
 
1358
(%o4)                          (\%o1)
 
1359
@end example
 
1360
 
 
1361
@end deffn
 
1362
 
 
1363
 
 
1364
@deffn {Funci@'on} texput (@var{a}, @var{s})
 
1365
@deffnx {Funci@'on} texput (@var{a}, @var{s}, @var{operator_type})
 
1366
@deffnx {Funci@'on} texput (@var{a}, [@var{s_1}, @var{s_2}], matchfix)
 
1367
@deffnx {Funci@'on} texput (@var{a}, [@var{s_1}, @var{s_2}, @var{s_3}], matchfix)
 
1368
 
 
1369
Establece el formato en TeX del @'atomo @var{a}, el cual puede ser un s@'{@dotless{i}}mbolo o el nombre de un operador.
 
1370
 
 
1371
La instrucci@'on @code{texput (@var{a}, @var{s})} hace que la funci@'on @code{tex} introduzca @var{s} en la salida TeX en el lugar de @var{a}.
 
1372
 
 
1373
La instrucci@'on @code{texput (@var{a}, @var{s}, @var{operator_type})}, en la que @var{operator_type} es @code{prefix}, @code{infix} o @code{postfix}, hace que la funci@'on @code{tex} introduzca @var{s} en la salida TeX en el lugar de @var{a}, coloc@'andolo en el lugar correcto.
 
1374
 
 
1375
La instrucci@'on @code{texput (@var{a}, [@var{s_1}, @var{s_2}], matchfix)} hace que la funci@'on @code{tex} introduzca @var{s_1} y @var{s_2} en la salida TeX a los lados de los argumentos de @var{a}. Si son m@'as de uno, los argumentos se separan por comas.
 
1376
 
 
1377
La instrucci@'on @code{texput (@var{a}, [@var{s_1}, @var{s_2}, @var{s_3}], matchfix)} hace que la funci@'on @code{tex} introduzca @var{s_1} y @var{s_2} en la salida TeX a los lados de los argumentos de @var{a}, con @var{s_3} separando los argumentos.
 
1378
 
 
1379
Ejemplos:
 
1380
 
 
1381
@c ===beg===
 
1382
@c texput (me,"\\mu_e");
 
1383
@c tex (me);
 
1384
@c texput (lcm, "\\mathrm{lcm}");
 
1385
@c tex (lcm (a, b));
 
1386
@c prefix ("grad");
 
1387
@c texput ("grad", " \\nabla ", prefix);
 
1388
@c tex (grad f);
 
1389
@c infix ("~");
 
1390
@c texput ("~", " \\times ", infix);
 
1391
@c tex (a ~ b);
 
1392
@c postfix ("@");
 
1393
@c texput ("@", "!!", postfix);
 
1394
@c tex (x @);
 
1395
@c matchfix ("<<", ">>");
 
1396
@c texput ("<<", [" \\langle ", " \\rangle "], matchfix);
 
1397
@c tex (<<a>>);
 
1398
@c tex (<<a, b>>);
 
1399
@c texput ("<<", [" \\langle ", " \\rangle ", " \\, | \\,"], matchfix);
 
1400
@c tex (<<a>>);
 
1401
@c tex (<<a, b>>);
 
1402
@c ===end===
 
1403
@example
 
1404
(%i1) texput (me,"\\mu_e");
 
1405
(%o1)                         \mu_e
 
1406
(%i2) tex (me);
 
1407
$$\mu_e$$
 
1408
(%o2)                         false
 
1409
(%i3) texput (lcm, "\\mathrm@{lcm@}");
 
1410
(%o3)                     \mathrm@{lcm@}
 
1411
(%i4) tex (lcm (a, b));
 
1412
$$\mathrm@{lcm@}\left(a , b\right)$$
 
1413
(%o4)                         false
 
1414
(%i5) prefix ("grad");
 
1415
(%o5)                         grad
 
1416
(%i6) texput ("grad", " \\nabla ", prefix);
 
1417
(%o6)                          180
 
1418
(%i7) tex (grad f);
 
1419
$$ \nabla f$$
 
1420
(%o7)                         false
 
1421
(%i8) infix ("~");
 
1422
(%o8)                           ~
 
1423
(%i9) texput ("~", " \\times ", infix);
 
1424
(%o9)                          180
 
1425
(%i10) tex (a ~ b);
 
1426
$$a \times b$$
 
1427
(%o10)                        false
 
1428
(%i11) postfix ("@@");
 
1429
(%o11)                          @@
 
1430
(%i12) texput ("@@", "!!", postfix);
 
1431
(%o12)                         160
 
1432
(%i13) tex (x @@);
 
1433
$$x!!$$
 
1434
(%o13)                        false
 
1435
(%i14) matchfix ("<<", ">>");
 
1436
(%o14)                         <<
 
1437
(%i15) texput ("<<", [" \\langle ", " \\rangle "], matchfix);
 
1438
(%o15)              \langle ( \rangle , false)
 
1439
(%i16) tex (<<a>>);
 
1440
$$ \langle a \rangle $$
 
1441
(%o16)                        false
 
1442
(%i17) tex (<<a, b>>);
 
1443
$$ \langle a , b \rangle $$
 
1444
(%o17)                        false
 
1445
(%i18) texput ("<<", [" \\langle ", " \\rangle ", " \\, | \\,"], matchfix);
 
1446
(%o18)            \langle ( \rangle ,  \, | \,)
 
1447
(%i19) tex (<<a>>);
 
1448
$$ \langle a \rangle $$
 
1449
(%o19)                        false
 
1450
(%i20) tex (<<a, b>>);
 
1451
$$ \langle a \, | \,b \rangle $$
 
1452
(%o20)                        false
 
1453
@end example
 
1454
 
 
1455
@end deffn
 
1456
 
 
1457
 
 
1458
@deffn {Funci@'on} system (@var{command})
 
1459
Ejecuta la instrucci@'on @var{command} como un proceso independiente de Maxima.
 
1460
La instrucci@'on se le pasa a la consola del sistema para su ejecuci@'on.
 
1461
La funci@'on @code{system} no est@'a soportada por todos los sistemas operativos, pero suele estarlo en todos los entornos  Unix y similares.
 
1462
 
 
1463
Suponiendo que @code{_hist.out} es una lista de frecuencias que se quieren representar en un diagrama de barras utilizando el programa @code{xgraph},
 
1464
 
 
1465
@example
 
1466
(%i1) (with_stdout("_hist.out",
 
1467
           for i:1 thru length(hist) do (
 
1468
             print(i,hist[i]))),
 
1469
       system("xgraph -bar -brw .7 -nl < _hist.out"));
 
1470
@end example
 
1471
 
 
1472
A fin de hacer el diagrama y eliminar el archivo temporal posteriormente, h@'agase:
 
1473
 
 
1474
@example
 
1475
system("(xgraph -bar -brw .7 -nl < _hist.out;  rm -f _hist.out)&")
 
1476
@end example
 
1477
 
 
1478
@end deffn
 
1479
 
 
1480
@defvr {Variable opcional} ttyoff
 
1481
Valor por defecto: @code{false}
 
1482
 
 
1483
Si @code{ttyoff} vale @code{true}, no se muestran las expresiones resultantes, pero @'estas se calculan de todos modos y se les asignan etiquetas. V@'ease @code{labels}.
 
1484
 
 
1485
El texto que escriban las funciones internas de Maxima, tales como los mensajes de error y las salidas de @code{describe},
 
1486
no se ven afectadas por @code{ttyoff}.
 
1487
 
 
1488
@end defvr
 
1489
 
 
1490
@deffn {Macro} with_stdout (@var{filename}, @var{expr_1}, @var{expr_2}, @var{expr_3}, ...)
 
1491
Abre el archivo @var{filename} y a continuaci@'on eval@'ua @var{expr_1}, @var{expr_2}, @var{expr_3}, ....
 
1492
Los valores de los argumentos no se almacenan @var{filename}, pero cualquier resultado a imprimir por @code{print}, @code{display}, @code{disp} o @code{grind}, va a parar al archivo @var{filename} en lugar de a la consola.
 
1493
 
 
1494
La macro @code{with_stdout} devuelve el valor de su @'ultimo argumento.
 
1495
 
 
1496
V@'ease tambi@'en @code{writefile}.
 
1497
 
 
1498
@c THIS DOESN'T SEEM VERY IMPORTANT TO MENTION ...
 
1499
@c Note the binding of display2d to be
 
1500
@c false, otherwise the printing will have things like "- 3" instead
 
1501
@c of "-3".
 
1502
@c
 
1503
@example
 
1504
@c THIS EXAMPLE USES SOME UNIX-ISH CONSTRUCTS -- WILL IT WORK IN WINDOWS ???
 
1505
@c ALSO IT'S SORT OF COMPLICATED AND THE SIMPLER SECOND EXAMPLE ILLUSTRATES with_stdout BETTER !!!
 
1506
@c mygnuplot (f, var, range, number_ticks) :=
 
1507
@c  block ([numer:true, display2d:false],
 
1508
@c  with_stdout("tmp.out",
 
1509
@c    dx: (range[2]-range[1])/number_ticks,
 
1510
@c    for x: range[1] thru range[2] step dx
 
1511
@c       do print (x, at (f, var=x))),
 
1512
@c  system ("echo \"set data style lines; set title '", f,"' ;plot '/tmp/gnu'
 
1513
@c ;pause 10 \" | gnuplot"))$
 
1514
(%i1) with_stdout ("tmp.out", for i:5 thru 10 do print (i, "! yields", i!))$
 
1515
(%i2) printfile ("tmp.out")$
 
1516
5 ! yields 120 
 
1517
6 ! yields 720 
 
1518
7 ! yields 5040 
 
1519
8 ! yields 40320 
 
1520
9 ! yields 362880 
 
1521
10 ! yields 3628800
 
1522
@end example
 
1523
 
 
1524
@end deffn
 
1525
 
 
1526
@deffn {Funci@'on} writefile (@var{filename})
 
1527
Comienza escribiendo una transcripci@'on de la sesi@'on de Maxima en el archivo @var{filename}.
 
1528
Cualquier interacci@'on entre Maxima y el usuario se almacena tambi@'en en este archivo, tal como aparece en la consola.
 
1529
 
 
1530
Puesto que la transcripci@'on se escribe en el formato de salida a la consola, su contenido no es interpretable por Maxima.
 
1531
Para hacer un archivo que contenga expresiones que puedan ser nuevamente cargadas en Maxima, v@'eanse @code{save} y @code{stringout}; la funci@'on @code{save} almacena expresiones en formato Lisp, mientras que @code{stringout} lo hace en formato Maxima.
 
1532
 
 
1533
El resultado de ejecutar @code{writefile} cuando el archivo @var{filename} ya existe depende del entorno Lisp operativo; el contenido anterior puede ser sobreescrito o ampliado con la sesi@'on actual. La funci@'on @code{appendfile} siempre a@~nade la sesi@'on al contenido actual.
 
1534
 
 
1535
Puede ser @'util ejecutar @code{playback} despu@'es de @code{writefile} para guardar las interacciones previas de la sesi@'on. Puesto que  @code{playback} muestra solamente las variables de entrada y salida (@code{%i1}, @code{%o1}, etc.),
 
1536
cualquier salida generada por una sentencia de impresi@'on desde dentro de una funci@'on no es mostrada por @code{playback}.
 
1537
 
 
1538
La funci@'on @code{closefile} cierra los archivos abiertos por @code{writefile} o @code{appendfile}.
 
1539
 
 
1540
@end deffn
 
1541
 
 
1542