From: Mario R. R. <rio...@us...> - 2011-07-31 19:43:54
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Maxima, A Computer Algebra System". The branch, master has been updated via a93fdaf9b84d49ec26479b1bc0518257ff47c761 (commit) via 93c2ab4bd8c955b1f89fa63281ab0e69accb829f (commit) from 3120d18d78f461b739e72e86b7c87da03a9cc31c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a93fdaf9b84d49ec26479b1bc0518257ff47c761 Merge: 3120d18 93c2ab4 Author: Mario Rodriguez <rio...@us...> Date: Sun Jul 31 21:43:54 2011 -0400 Merge branch 'doc' commit 93c2ab4bd8c955b1f89fa63281ab0e69accb829f Author: Mario Rodriguez <rio...@us...> Date: Sun Jul 31 21:42:28 2011 -0400 Updating Spanish documentation diff --git a/doc/info/es/Command.es.texi b/doc/info/es/Command.es.texi index 0066bda..bd7460e 100644 --- a/doc/info/es/Command.es.texi +++ b/doc/info/es/Command.es.texi @@ -1,4 +1,4 @@ -@c English version 2011-06-12. +@c English version 2011-07-24. @menu * Introducci@'on a la l@'{@dotless{i}}nea de comandos:: * Funciones y variables para la l@'{@dotless{i}}nea de comandos:: @@ -350,42 +350,56 @@ V@'eanse tambi@'en @code{_}, @code{%%} y @code{%th}. @vrindex Resultado anterior en una sentencia compuesta @end ifinfo -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. +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. Por ejemplo, -@example -block (integrate (x^5, x), ev (%%, x=2) - ev (%%, x=1)); -block ([prev], prev: integrate (x^5, x), - ev (prev, x=2) - ev (prev, x=1)); -@end example +Cuando se escribe al comienzo de una sentencia compuesta, o fuera de ella, +@code{%%} no est@'a definido. -devuelven el mismo resultado @code{21/2}. +@code{%%} es reconocido por @code{batch} y @code{load}, interpret@'andose +de la misma manera que se acaba de indicar. -Una sentencia compuesta puede contener otras sentencias compuestas. -Independientemente de que una sentencia sea simple o compuesta, @code{%%} es el valor de la sentencia previa. -Por ejemplo, +V@'ease tambi@'en @code{%} + +Ejemplos: + +Los siguientes dos ejemplos devuelven el mismo resultado. @example -block (block (a^n, %%*42), %%/6) -@end example +(%i1) block (integrate (x^5, x), ev (%%, x=2) - ev (%%, x=1)); + 21 +(%o1) -- + 2 +(%i2) block ([prev], prev: integrate (x^5, x), + ev (prev, x=2) - ev (prev, x=1)); + 21 +(%o2) -- + 2 -devuelve @code{7*a^n}. +@end example -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 +Una sentencia compuesta puede contener otras sentencias compuestas. +Independientemente de que una sentencia sea simple o compuesta, @code{%%} es +el valor de la sentencia previa. @example -block (a: 42, break ())$ +(%i3) block (block (a^n, %%*42), %%/6); + n +(%o3) 7 a @end example -introduciendo @code{%%;} se obtiene @code{42}. +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, escribiendo @code{%%;} en el siguiente ejemplo se obtiene @code{42}. -En la primera sentencia de una sentencia compuesta, o fuera de una sentencia compuesta, @code{%%} no est@'a definido. +@example +(%i4) block (a: 42, break ())$ -La variable @code{%%} es reconocida por @code{batch} y por @code{load}. -Cuando un fichero es procesado por @code{batch}, la variable @code{%%} -tiene el mismo significado que en el modo interactivo. +Entering a Maxima break point. Type 'exit;' to resume. +_%%; +42 +_ +@end example -V@'ease tambi@'en @code{%}. @end defvr @@ -399,25 +413,29 @@ Es el valor de la expresi@'on de la @var{i}-@'esima salida anterior. Esto es, si la siguiente expresi@'on a calcular es la salida @var{n}-@'esima, @code{%th (@var{m})} es la salida (@var{n} - @var{m})-@'esima. -La funci@'on @code{%th} es @'util en archivos tipo @code{batch} o para hacer referencia a un grupo de expresiones de salida. -Por ejemplo, - -@example -block (s: 0, for i:1 thru 10 do s: s + %th (i))$ -@end example +@code{%th} es reconocido por @code{batch} y @code{load}, interpret@'andose +de la misma manera que se acaba de indicar. Cuando un fichero es procesado +por @code{load}, @code{%th} se refiere a los c@'alculos m@'as recientes; +@code{%th} no hace referencia a las expresiones de salida incluidas en el +propio fichero que se est@'a procesando. -asigna a @code{s} la suma de las diez @'ultimas expresiones de salida. +V@'eanse tambi@'en @code{%} y @code{%%} -La variable @code{%th} es reconocida por @code{batch} y por @code{load}. -Cuando un fichero es procesado por @code{batch}, la variable @code{%th} -tiene el mismo significado que en el modo interactivo. -Cuando un fichero es procesado por @code{load}, a la variable @code{%th} -se le asigna la @'ultima expresi@'on introducida, bien desde el modo -interactivo, bien en un fichero por lotes; en ning@'un caso se le asigna -a @code{%th} una expresi@'on de entrada del fichero que est@'a siendo procesado. +Ejemplo: -V@'ease tambi@'en @code{%}. +@code{%th} es @'util en ficheros @code{batch} para hacer referencia a grupos de resultados +reci@'en obtenidos. En este ejemplo se asigna a @code{s} la suma de los cinco resultados. +@example +(%i1) 1;2;3;4;5; +(%o1) 1 +(%o2) 2 +(%o3) 3 +(%o4) 4 +(%o5) 5 +(%i6) block (s: 0, for i:1 thru 5 do s: s + %th(i), s); +(%o6) 15 +@end example @end deffn @@ -470,21 +488,23 @@ prefijo, los prefijos @code{inchar}, @code{outchar} y @code{linechar} deben comenzar con caracteres diferentes; en caso contrario, sentencias como @code{kill(inlables)} pueden dar resultados inesperados. +V@'ease tambi@'en @code{labels}. + +Ejemplo: + @c ===beg=== @c inchar: "input"; @c expand((a+b)^3); @c ===end=== @example (%i1) inchar: "input"; -(%o1) input -(input1) expand ((a+b)^3); - 3 2 2 3 -(%o1) b + 3 a b + 3 a b + a -(input2) +(%o1) input +(input2) expand((a+b)^3); + 3 2 2 3 +(%o2) b + 3 a b + 3 a b + a +(input3) @end example -V@'ease tambi@'en @code{labels}. - @end defvr @@ -700,6 +720,16 @@ muy @'util si el usuario duda con frecuencia de la correctitud de alguna opci@'on y quiere estar seguro de la variable a la que @'el asign@'o un valor fue verdaramente una variable opci@'on (o interruptor). +Ejemplo: + +@example +(%i1) optionset:true; +assignment: assigning to option optionset +(%o1) true +(%i2) gamma_expand:true; +assignment: assigning to option gamma_expand +(%o2) true +@end example @end defvr @@ -718,21 +748,22 @@ prefijo, los prefijos @code{inchar}, @code{outchar} y @code{linechar} deben comenzar con caracteres diferentes; en caso contrario, sentencias como @code{kill(inlables)} pueden dar resultados inesperados. +V@'ease tambi@'en @code{labels}. + +Ejemplo: + @c ===beg=== @c outchar: "output"; @c expand((a+b)^3); @c ===end=== @example (%i1) outchar: "output"; -(output1) output -(%i2) expand ((a+b)^3); - 3 2 2 3 -(output2) b + 3 a b + 3 a b + a +(output1) output +(%i2) expand((a+b)^3); + 3 2 2 3 +(output2) b + 3 a b + 3 a b + a (%i3) @end example - -V@'ease tambi@'en @code{labels}. - @end defvr @@ -981,7 +1012,7 @@ Valor por defecto: @code{false} Si @code{%edispflag} vale @code{true}, Maxima muestra @code{%e} elevado a un exponente negativo como un cociente. Por ejemplo, @code{%e^-x} se -muestra como @code{1/%e^x}. +muestra como @code{1/%e^x}. V@'ease tambi@'en @code{exptdispflag}. Ejemplo: @@ -1010,6 +1041,13 @@ Valor por defecto: @code{!} 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. +Ejemplo: + +@example +(%i1) abs((x^3+1)); + ! 3 ! +(%o1) !x + 1! +@end example @end defvr @@ -1020,6 +1058,8 @@ 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. +V@'eanse tambi@'en @code{ldisp} y @code{print}. + Ejemplos: @c ===beg=== @@ -1046,7 +1086,13 @@ Ejemplos: @deffn {Funci@'on} display (@var{expr_1}, @var{expr_2}, ...) Muestra las ecuaciones cuyos miembros izquierdos son -@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}. +@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@'eanse tambi@'en @code{ldisplay}, @code{disp} y @code{ldisp}. Ejemplos: @@ -1126,8 +1172,33 @@ X*4/3; --- - X @deffn {Funci@'on} dispterms (@var{expr}) Muestra @var{expr} en partes, una debajo de la otra. -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}). +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}). +Ejemplo: + +@example +(%i1) dispterms(2*a*sin(x)+%e^x); + ++ + +2 a sin(x) + + x +%e + +(%o1) done +@end example @end deffn @@ -1145,7 +1216,25 @@ Las funciones @code{expt} y @code{ncexpt} no se reconocen en una entrada. @defvr {Variable opcional} exptdispflag Valor por defecto: @code{true} -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}. +Si @code{exptdispflag} vale @code{true}, Maxima muestra las expresiones con +exponentes negativos como cocientes. V@'ease tambi@'en @code{%edispflag}. + +Ejemplo: + +@example +(%i1) exptdispflag:true; +(%o1) true +(%i2) 10^-x; + 1 +(%o2) --- + x + 10 +(%i3) exptdispflag:false; +(%o3) false +(%i4) 10^-x; + - x +(%o4) 10 +@end example @end defvr @@ -1281,7 +1370,7 @@ n do (for j from i+1 thru n do L[i,j]:0),L) @defvr {Variable opcional} ibase -Valor por defecto: 10 +Valor por defecto: @code{10} @code{ibase} es la base en la que Maxima lee valores enteros. @@ -1376,7 +1465,7 @@ diez. Muestra las expresiones @var{expr_1}, ..., @var{expr_n} en la consola con el formato de salida; @code{ldisp} asigna una etiqueta a cada argumento y devuelve la lista de etiquetas. -V@'ease tambi@'en @code{disp}. +V@'eanse tambi@'en @code{disp}, @code{display} y @code{ldisplay}. @example (%i1) e: (a+b)^3; @@ -1412,7 +1501,7 @@ en la que @code{lhs} es uno de los argumentos de @code{ldisplay} y @code{rhs} su valor. Normalmente, cada argumento ser@'a el nombre de una variable. La funci@'on @code{ldisp} asigna una etiqueta a cada ecuaci@'on y devuelve la lista de etiquetas. -V@'ease tambi@'en @code{display}. +V@'eanse tambi@'en @code{disp}, @code{display} y @code{ldisp}. @example (%i1) e: (a+b)^3; @@ -1441,7 +1530,7 @@ V@'ease tambi@'en @code{display}. @defvr {Variable opcional} linel -Valor por defecto: 79 +Valor por defecto: @code{79} 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}. @@ -1483,7 +1572,7 @@ en lugar de @code{- y + x}. D@'andole el valor @code{false} se realiza un an@'a @defvr {Variable opcional} obase -Valor por defecto: 10 +Valor por defecto: @code{10} @code{obase} es la base en la que Maxima imprime los n@'umeros enteros. @@ -1567,7 +1656,20 @@ Si @code{powerdisp} vale @code{true}, se muestran las sumas con sus t@'erminos o Por defecto, los t@'erminos de una suma se muestran en el orden de las potencias decrecientes. -@c NEED AN EXAMPLE HERE +Ejemplo: + +@example +(%i1) powerdisp:true; +(%o1) true +(%i2) x^2+x^3+x^4; + 2 3 4 +(%o2) x + x + x +(%i3) powerdisp:false; +(%o3) false +(%i4) x^2+x^3+x^4; + 4 3 2 +(%o4) x + x + x +@end example @end defvr diff --git a/doc/info/es/Help.es.texi b/doc/info/es/Help.es.texi index 33290e8..5309545 100644 --- a/doc/info/es/Help.es.texi +++ b/doc/info/es/Help.es.texi @@ -1,153 +1,11 @@ -@c version 1.29 +@c English version 2011-07-24 @menu -* Lisp y Maxima:: -* Recolector de basura:: * Documentaci@'on:: * Funciones y variables para la ayuda:: @end menu -@node Lisp y Maxima, Recolector de basura, Ayuda, Ayuda -@section Lisp y Maxima -Maxima fue escrito en Lisp, y es muy f@'acil tener acceso a funciones y variables Lisp desde Maxima y viceversa. -Los s@'{@dotless{i}}mbolos Lisp y los s@'{@dotless{i}}mblos Maxima est@'an claramente diferenciados por medio de una convenci@'on de nombres. -Un s@'{@dotless{i}}mblo Lisp el cual comienza con un signo pesos @code{$} corresponde a un s@'{@dotless{i}}mbolo Maxima sin el signo pesos. -Un s@'{@dotless{i}}mbolo Maxima el cual comienza con un signo de cierre de interrogaci@'on @code{?} corresponde a un s@'{@dotless{i}}mbolo Lisp sin dicho signo. -Por ejemplo, el s@'{@dotless{i}}mbolo Maxima @code{foo} corresponde a el s@'{@dotless{i}}mbolo Lisp @code{$FOO}, -mientras que el s@'{@dotless{i}}mbolo Maxima @code{?foo} corresponde a el s@'{@dotless{i}}mbolo Lisp @code{FOO}, -tenga en cuenta que @code{?foo} esta escrito sin espacio entre @code{?} y @code{foo}; -de otra manera se estar@'{@dotless{i}}a invocando a @code{describe ("foo")}. - -El gui@'on @code{-}, asterisco @code{*}, u otros car@'acteres especiales en s@'imbolos Lisp deben ser escritos mediante un backslash @code{\} si aparecen en c@'odigo Maxima. -Por ejemplo, el identificador Lisp @code{*foo-bar*} se debe escribir @code{?\*foo\-bar\*} en Maxima. - -Se puede ejecutar c@'odigo Lisp desde una sesi@'on de Maxima. -Una l@'{@dotless{i}}nea Lisp (que contenga una o m@'as formas) puede ser ejecutada -por medio de un comando especial @code{:lisp}. Por ejemplo, - -@example -(%i1) :lisp (foo $x $y) -@end example - -@noindent -se llama a la funci@'on Lisp @code{foo} con variables Maxima @code{x} y -@code{y} como argumentos. -La instrucci@'on @code{:lisp} puede aparecer en el prompt interactivo -o en un archivo que sea procesado por @code{batch} o @code{demo}, pero no -en un archivo que sea procesado por @code{load}, @code{batchload}, @code{translate_file} o @code{compile_file}. - -La funci@'on @code{to_lisp()} abre una sesi@'on interactiva con el interprete Lisp. -Escribiendo @code{(to-maxima)} se cierra la sesi@'on con Lisp y se retorna a Maxima. - -@c I DON'T EVEN WANT TO MENTION USING CTRL-C TO OPEN A LISP SESSION. -@c (1) IT TAKES EXTRA SET UP TO GET STARTED NAMELY :lisp (setq *debugger-hook* nil) -@c (2) IT GETS SCREWED UP EASILY -- TYPE SOMETHING WRONG AND YOU CAN'T GET BACK TO MAXIMA -@c (3) IT DOESN'T OFFER FUNCTIONALITY NOT PRESENT IN THE to_lisp() SESSION - -Las funciones y variables Lisp las cuales esten para ser visibles en Maxima como funciones y variables con nombres oridinarios (sin una puntuaci@'on especial), deben tener nombres tipo Lisp que comiencen con el signo pesos -@code{$}. - -Maxima distingue entre letras min@'usculas y may@'usculas en identificadores. -Existen algunas reglas que gobiernan la traducci@'on de nombres entre Lisp y Maxima. - -@enumerate -@item -Un identificador Lisp que no se encuentra encerrado en barras verticales -corresponde a un identificador Maxima en min@'uscula. -Que el idenficador Lisp est@'e en may@'uscula, min@'uscula o una combinaci@'on -de ambas, no afecta en nada. -Por ejemplo, los identificadores Lisp @code{$foo}, @code{$FOO}, y @code{$Foo}, -todos corresponden al identificador Maxima @code{foo}. Esto es as@'{@dotless{i}} -porque @code{$foo}, @code{$FOO} y @code{$Foo} se convierten por defecto al -s@'{@dotless{i}}mbolo @code{$FOO} de Lisp. - -@item -Un identificador Lisp el cual se encuentre todo en may@'uscula o todo en min@'uscula y encerrado entre barras verticales corresponde a un identicador Maxima con el caso contrario. -Esto es, de may@'usculas cambia a min@'usculas y de min@'usculas cambia a may@'usculas. -E.g., el identificador Lisp @code{|$FOO|} y @code{|$foo|} -corresponden los identificadores Maxima @code{foo} y @code{FOO}, respectivamente. -@item -Un identificador Lisp el cual esta escrito mezclando letras may@'usculas y min@'usculas y se encuentra entre barras verticales corresponde a un identificador Maxima con la misma escritura. -E.g., el identificador Lisp @code{|$Foo|} corresponde a el identificador Maxima @code{Foo}. -@end enumerate - -La macro Lisp @code{#$} permite el uso de expresiones Maxima dentro de c@'odigo Lisp. @code{#$@var{expr}$} extiende a una expresi@'on Lisp equivalente a la expresi@'on Maxima @var{expr}. - -@example -(msetq $foo #$[x, y]$) -@end example - -@noindent -Esto tiene el mismo efecto que: - -@example -(%i1) foo: [x, y]; -@end example - -@noindent -La funci@'on Lisp @code{displa} imprime una expresi@'on en formato Maxima. - -@example -(%i1) :lisp #$[x, y, z]$ -((MLIST SIMP) $X $Y $Z) -(%i1) :lisp (displa '((MLIST SIMP) $X $Y $Z)) -[x, y, z] -NIL -@end example - -Las funciones definidas en Maxima no son funciones Lisp ordinarias. -La funci@'on Lisp @code{mfuncall} llama a una funci@'on Maxima. -Por ejemplo: - -@example -(%i1) foo(x,y) := x*y$ -(%i2) :lisp (mfuncall '$foo 'a 'b) -((MTIMES SIMP) A B) -@end example - -Algunas funciones Lisp son compartidas en el paquete Maxima, las cuales se listan a continuaci@'on: - -@code{complement}, -@code{continue}, -@code{//}, -@code{float}, -@code{functionp}, -@code{array}, -@code{exp}, -@code{listen}, -@code{signum}, -@code{atan}, -@code{asin}, -@code{acos}, -@code{asinh}, -@code{acosh}, -@code{atanh}, -@code{tanh}, -@code{cosh}, -@code{sinh}, -@code{tan}, -@code{break}, -y @code{gcd}. - -@node Recolector de basura, Documentaci@'on, Lisp y Maxima, Ayuda -@section Recolector de basura - -La computaci@'on simb@'olica tiende a crear una buena cantidad de basura -(resultados temporales que ya no ser@'an utilizados), -y un manejo efectivo de esto puede ser crucial para el t@'ermino exitoso de -algunos programas. - -Bajo GCL (GNU Common Lisp), en aquellos sistemas UNIX donde la llamada al sistema -mprotect est@'a disponible (incluyendo SUN OS 4.0 y algunas variantes de BSD) -se dispone de un recolector de basura estratificado. V@'ease la documentaci@'on -de GCL para ALLOCATE y GBC. A nivel Lisp, ejecutando (setq si::*notify-gbc* t) -pemitir@'a determinar qu@'e @'areas necesitan m@'as espacio. - -En cuanto al resto de Lisps bajo los que funciona Maxima, se remite -al lector a la documentaci@'on correspondiente para controlar la -recolecci@'on de basura. - -@node Documentaci@'on, Funciones y variables para la ayuda, Recolector de basura, Ayuda +@node Documentaci@'on, Funciones y variables para la ayuda, Ayuda, Ayuda @section Documentaci@'on El manual en l@'{@dotless{i}}nea del usuario de Maxima puede ser visto en diferentes formas. @@ -180,6 +38,12 @@ produce: y salidas adicionales. + + + + + + @node Funciones y variables para la ayuda, , Documentaci@'on, Ayuda @section Funciones y variables para la ayuda diff --git a/doc/info/es/Program.es.texi b/doc/info/es/Program.es.texi index 701011b..2fc2ec0 100644 --- a/doc/info/es/Program.es.texi +++ b/doc/info/es/Program.es.texi @@ -1,10 +1,163 @@ -@c English version 2011-06-15 +@c English version 2011-07-24 @menu +* Lisp y Maxima:: +* Recolector de basura:: * Introducci@'on a la programaci@'on:: * Funciones y variables para la programaci@'on:: @end menu -@node Introducci@'on a la programaci@'on, Funciones y variables para la programaci@'on, Programaci@'on, Programaci@'on +@node Lisp y Maxima, Recolector de basura, Programaci@'on, Programaci@'on +@section Lisp y Maxima + +Maxima fue escrito en Lisp, y es muy f@'acil tener acceso a funciones y variables Lisp desde Maxima y viceversa. +Los s@'{@dotless{i}}mbolos Lisp y los s@'{@dotless{i}}mblos Maxima est@'an claramente diferenciados por medio de una convenci@'on de nombres. +Un s@'{@dotless{i}}mblo Lisp el cual comienza con un signo pesos @code{$} corresponde a un s@'{@dotless{i}}mbolo Maxima sin el signo pesos. +Un s@'{@dotless{i}}mbolo Maxima el cual comienza con un signo de cierre de interrogaci@'on @code{?} corresponde a un s@'{@dotless{i}}mbolo Lisp sin dicho signo. +Por ejemplo, el s@'{@dotless{i}}mbolo Maxima @code{foo} corresponde a el s@'{@dotless{i}}mbolo Lisp @code{$FOO}, +mientras que el s@'{@dotless{i}}mbolo Maxima @code{?foo} corresponde a el s@'{@dotless{i}}mbolo Lisp @code{FOO}, +tenga en cuenta que @code{?foo} esta escrito sin espacio entre @code{?} y @code{foo}; +de otra manera se estar@'{@dotless{i}}a invocando a @code{describe ("foo")}. + +El gui@'on @code{-}, asterisco @code{*}, u otros car@'acteres especiales en s@'imbolos Lisp deben ser escritos mediante un backslash @code{\} si aparecen en c@'odigo Maxima. +Por ejemplo, el identificador Lisp @code{*foo-bar*} se debe escribir @code{?\*foo\-bar\*} en Maxima. + +Se puede ejecutar c@'odigo Lisp desde una sesi@'on de Maxima. +Una l@'{@dotless{i}}nea Lisp (que contenga una o m@'as formas) puede ser ejecutada +por medio de un comando especial @code{:lisp}. Por ejemplo, + +@example +(%i1) :lisp (foo $x $y) +@end example + +@noindent +se llama a la funci@'on Lisp @code{foo} con variables Maxima @code{x} y +@code{y} como argumentos. +La instrucci@'on @code{:lisp} puede aparecer en el prompt interactivo +o en un archivo que sea procesado por @code{batch} o @code{demo}, pero no +en un archivo que sea procesado por @code{load}, @code{batchload}, @code{translate_file} o @code{compile_file}. + +La funci@'on @code{to_lisp()} abre una sesi@'on interactiva con el interprete Lisp. +Escribiendo @code{(to-maxima)} se cierra la sesi@'on con Lisp y se retorna a Maxima. + +@c I DON'T EVEN WANT TO MENTION USING CTRL-C TO OPEN A LISP SESSION. +@c (1) IT TAKES EXTRA SET UP TO GET STARTED NAMELY :lisp (setq *debugger-hook* nil) +@c (2) IT GETS SCREWED UP EASILY -- TYPE SOMETHING WRONG AND YOU CAN'T GET BACK TO MAXIMA +@c (3) IT DOESN'T OFFER FUNCTIONALITY NOT PRESENT IN THE to_lisp() SESSION + +Las funciones y variables Lisp las cuales esten para ser visibles en Maxima como funciones y variables con nombres oridinarios (sin una puntuaci@'on especial), deben tener nombres tipo Lisp que comiencen con el signo pesos +@code{$}. + +Maxima distingue entre letras min@'usculas y may@'usculas en identificadores. +Existen algunas reglas que gobiernan la traducci@'on de nombres entre Lisp y Maxima. + +@enumerate +@item +Un identificador Lisp que no se encuentra encerrado en barras verticales +corresponde a un identificador Maxima en min@'uscula. +Que el idenficador Lisp est@'e en may@'uscula, min@'uscula o una combinaci@'on +de ambas, no afecta en nada. +Por ejemplo, los identificadores Lisp @code{$foo}, @code{$FOO}, y @code{$Foo}, +todos corresponden al identificador Maxima @code{foo}. Esto es as@'{@dotless{i}} +porque @code{$foo}, @code{$FOO} y @code{$Foo} se convierten por defecto al +s@'{@dotless{i}}mbolo @code{$FOO} de Lisp. + +@item +Un identificador Lisp el cual se encuentre todo en may@'uscula o todo en min@'uscula y encerrado entre barras verticales corresponde a un identicador Maxima con el caso contrario. +Esto es, de may@'usculas cambia a min@'usculas y de min@'usculas cambia a may@'usculas. +E.g., el identificador Lisp @code{|$FOO|} y @code{|$foo|} +corresponden los identificadores Maxima @code{foo} y @code{FOO}, respectivamente. +@item +Un identificador Lisp el cual esta escrito mezclando letras may@'usculas y min@'usculas y se encuentra entre barras verticales corresponde a un identificador Maxima con la misma escritura. +E.g., el identificador Lisp @code{|$Foo|} corresponde a el identificador Maxima @code{Foo}. +@end enumerate + +La macro Lisp @code{#$} permite el uso de expresiones Maxima dentro de c@'odigo Lisp. @code{#$@var{expr}$} extiende a una expresi@'on Lisp equivalente a la expresi@'on Maxima @var{expr}. + +@example +(msetq $foo #$[x, y]$) +@end example + +@noindent +Esto tiene el mismo efecto que: + +@example +(%i1) foo: [x, y]; +@end example + +@noindent +La funci@'on Lisp @code{displa} imprime una expresi@'on en formato Maxima. + +@example +(%i1) :lisp #$[x, y, z]$ +((MLIST SIMP) $X $Y $Z) +(%i1) :lisp (displa '((MLIST SIMP) $X $Y $Z)) +[x, y, z] +NIL +@end example + +Las funciones definidas en Maxima no son funciones Lisp ordinarias. +La funci@'on Lisp @code{mfuncall} llama a una funci@'on Maxima. +Por ejemplo: + +@example +(%i1) foo(x,y) := x*y$ +(%i2) :lisp (mfuncall '$foo 'a 'b) +((MTIMES SIMP) A B) +@end example + +Algunas funciones Lisp son compartidas en el paquete Maxima, las cuales se listan a continuaci@'on: + +@code{complement}, +@code{continue}, +@code{//}, +@code{float}, +@code{functionp}, +@code{array}, +@code{exp}, +@code{listen}, +@code{signum}, +@code{atan}, +@code{asin}, +@code{acos}, +@code{asinh}, +@code{acosh}, +@code{atanh}, +@code{tanh}, +@code{cosh}, +@code{sinh}, +@code{tan}, +@code{break}, +y @code{gcd}. + + + + + + +@node Recolector de basura, Introducci@'on a la programaci@'on, Lisp y Maxima, Programaci@'on +@section Recolector de basura + +La computaci@'on simb@'olica tiende a crear una buena cantidad de basura +(resultados temporales que ya no ser@'an utilizados), +y un manejo efectivo de esto puede ser crucial para el t@'ermino exitoso de +algunos programas. + +Bajo GCL (GNU Common Lisp), en aquellos sistemas UNIX donde la llamada al sistema +mprotect est@'a disponible (incluyendo SUN OS 4.0 y algunas variantes de BSD) +se dispone de un recolector de basura estratificado. V@'ease la documentaci@'on +de GCL para ALLOCATE y GBC. A nivel Lisp, ejecutando (setq si::*notify-gbc* t) +pemitir@'a determinar qu@'e @'areas necesitan m@'as espacio. + +En cuanto al resto de Lisps bajo los que funciona Maxima, se remite +al lector a la documentaci@'on correspondiente para controlar la +recolecci@'on de basura. + + + + + + +@node Introducci@'on a la programaci@'on, Funciones y variables para la programaci@'on, Recolector de basura, Programaci@'on @section Introducci@'on a la programaci@'on Maxima dispone de los bucles @code{do} para hacer iteraciones, as@'{@dotless{i}} como estructuras m@'as primitivas del estilo de @code{go}. diff --git a/doc/info/es/maxima.texi b/doc/info/es/maxima.texi index 5ce793d..017409b 100644 --- a/doc/info/es/maxima.texi +++ b/doc/info/es/maxima.texi @@ -249,10 +249,8 @@ Fallos Ayuda -* Lisp y Maxima:: -* Recolector de basura:: -* Documentaci@'on:: -* Funciones y variables para la ayuda:: +* Documentaci@'on:: +* Funciones y variables para la ayuda:: L@'{@dotless{i}}nea de comandos @@ -455,8 +453,10 @@ Definici@'on de Funciones Programaci@'on -* Introducci@'on a la programaci@'on:: -* Funciones y variables para la programaci@'on:: +* Lisp y Maxima:: +* Recolector de basura:: +* Introducci@'on a la programaci@'on:: +* Funciones y variables para la programaci@'on:: Depurado ----------------------------------------------------------------------- Summary of changes: doc/info/es/Command.es.texi | 224 +++++++++++++++++++++++++++++++------------ doc/info/es/Help.es.texi | 152 ++--------------------------- doc/info/es/Program.es.texi | 157 ++++++++++++++++++++++++++++++- doc/info/es/maxima.texi | 12 +- 4 files changed, 332 insertions(+), 213 deletions(-) hooks/post-receive -- Maxima, A Computer Algebra System |