Siguiente: Funciones y variables para salida TeX, Anterior: Archivos, Subir: Lectura y escritura [Índice general][Índice]
Añade información de la consola a filename, de igual manera que lo hace writefile
, pero con la salvedad de que si el archivo ya existe la información queda añadida al final de su contenido.
La función closefile
cierra los archivos abiertos por appendfile
o writefile
.
option
) ¶batch(filename)
lee expresiones de Maxima desde filename y
las evalúa. La función batch
busca filename en la lista
file_search_maxima
. Véase file_search
.
batch(filename,
es como test
)run_testsuite
con la
opción display_all=true
. En este caso batch
busca filename
en la lista file_search_maxima
y no en file_search_tests
como hace
run_testsuite
. Además, run_testsuite
ejecuta tests que están
en la lista testsuite_files
. Con batch
es posible ejecutar
cualquier fichero que se encuentre en file_search_maxima
en modo de prueba.
El contenido de filename debe ser una secuencia de expresiones de Maxima,
cada una de las cuales termina en ;
o $
.
La variable especial %
y la función %th
se refieren a resultados previos dentro del archivo.
El archivo puede incluir construcciones del tipo :lisp
.
Espacios, tabulaciones y saltos de línea en el archivo se ignoran.
Un archivo de entrada válido puede crearse con un editor de texto o con la
función stringout
.
La función batch
lee las expresiones del archivo filename,
muestra las entradas en la consola, realiza los cálculos solicitados y
muestra las expresiones de los resultados.
A las expresiones de entrada se les asignan etiquetas, así
como a las de salida. La función batch
evalúa todas las expresiones
de entrada del archivo a menos que se produzca un error. Si se le solicita
información al usuario (con asksign
o askinteger
, por ejemplo)
batch
se detiene para leer la nueva información para luego continuar.
Es posible detener batch
tecleando control-C
desde la consola.
El efecto de control-C
depende del entorno Lisp instalado.
La función batch
tiene diversas aplicaciones, tales como servir de
almacén de código escrito por el usuario, suministrar demostraciones
libres de errores o ayudar a organizar el trabajo del usuario en la resolución
de problemas complejos.
La función batch
evalúa su argumento y devuelve la ruta hacia
filename en formato cadena cuando es invocada sin segundo argumento
o con la opción demo
. Cuando es llamada con la opción test
,
devuelve la lista vacía []
o una lista con filename
y los números de tests que han fallado.
Véanse también load
, batchload
y demo
.
Lee expresiones de Maxima desde filename y las evalúa sin mostrar las entradas ni las salidas y sin asignarles etiquetas. Sin embargo, las salidas producidas por print
o describe
sí se muestran.
La variable especial %
y la función %th
se refieren a resultados previos del intérprete interactivo, no a los del propio archivo. El archivo no puede incluir construcciones del tipo :lisp
.
La función batchload
devuelve la ruta de filename en formato de cadena.
La función batchload
evalúa sus argumentos.
Véanse también batch
y load
.
La función closefile
cierra los archivos abiertos por appendfile
o writefile
.
Valor por defecto: false
La variable file_output_append
controla si las funciones de escritura de ficheros añaden información o sustituyen el fichero de salida. Cuando file_output_append
toma el valor true
, estas funciones amplían el contenido de sus ficheros de salida; en otro caso, sustituyen el fichero anterior de igual nombre por otro con el nuevo contenido.
Las funciones save
, stringout
y with_stdout
se ven afectadas por el valor que tome la variable file_output_append
. Otras funciones que también escriben en ficheros de salida no tienen en cuenta este valor; en concreto, las funciones para la representación de gráficos y las de traducción siempre sustituyen el fichero anterior por uno nuevo de igual nombre, mientras que las funciones tex
y appendfile
siempre añaden información al fichero de salida sin eliminar la información anterior.
Construye una ruta modificada a partir de path y filename.
Si la componente final de path es de la forma ###.something
,
la componente se reemplaza con filename.something
.
En otro caso, la componente final se reemplaza simplemente por filename.
El resultado es un objeto Lisp de tipo pathname.
La función file_search
busca el archivo filename y devuelve su ruta como una cadena; si no lo encuentra, file_search
devuelve false
. La llamada
file_search (filename)
busca en los directorios de búsqueda por defecto,
que son los especificados por las variables file_search_maxima
, file_search_lisp
y file_search_demo
.
La función file_search
analiza primero si el nombre del argumento existe antes de hacerlo coincidir con los comodines de los patrones de búsqueda de archivos.
Véase file_search_maxima
para más información sobre patrones de búsqueda de archivos.
El argumento filename puede ser una ruta con nombre de archivo, o simplemente el nombre del archivo, o, si el directorio de búsqueda de archivo incluye un patrón de búsqueda, es suficiente con el nombre de archivo sin extensión. Por ejemplo,
file_search ("/home/wfs/special/zeta.mac"); file_search ("zeta.mac"); file_search ("zeta");
todos buscan el mismo archivo, dando por hecho que el archivo existe y que /home/wfs/special/###.mac
está en file_search_maxima
.
La llamada file_search (filename, pathlist)
busca solamente en los directorios especificados por pathlist, que es una lista de cadenas.
El argumento pathlist ignora los directorios de búsqueda por defecto, de manera que si se da la lista de rutas, file_search
busca solamente en ellas y no en los directorios por defecto.
Incluso si hay un único directorio en pathlist, debe ser suministrado como una lista de un único elemento.
El usuario puede modificar los directorios de búsqueda por defecto; véase para ello See file_search_maxima
.
La función file_search
es llamada por load
con los directorios de búsqueda file_search_maxima
y file_search_lisp
.
Estas variables especifican listas de directorios en los que deben buscar la funciones load
, demo
y algunas otras. Los valores por defecto de estas variables nombran directorios de la instalación de Maxima.
El usuario puede modificar estas variables, bien reemplazando los valores por defecto, bien añadiendo nuevos directorios. Por ejemplo,
file_search_maxima: ["/usr/local/foo/###.mac", "/usr/local/bar/###.mac"]$
reemplaza el valor por defecto de file_search_maxima
, mintras que
file_search_maxima: append (file_search_maxima, ["/usr/local/foo/###.mac", "/usr/local/bar/###.mac"])$
añade dos directorios más. Puede ser conveniente colocar una expresión como esta en el archivo maxima-init.mac
, de manera que la ruta de búsqueda de ficheros se asigne automáticamente cada vez que arranca Maxima.
Se pueden especificar varias extensiones de archivos y rutas con comodines especiales.
La cadena ###
representa el nombre del archivo buscado y una lista separada de comas y encerrada entre llaves, {foo,bar,baz}
representa múltiples cadenas.
Por ejemplo, suponiendo que se busca el nombre neumann
,
"/home/{wfs,gcj}/###.{lisp,mac}"
se interpreta como /home/wfs/neumann.lisp
, /home/gcj/neumann.lisp
, /home/wfs/neumann.mac
y /home/gcj/neumann.mac
.
Devuelve una descripción del contenido de filename basada en la extensión, sin intentar abrir el archivo para inspeccionar su contenido.
El valor devuelto es un símbolo object
, lisp
o
maxima
. Si la extensión es "mac", "mc", "demo", "dem", "dm1", "dm2",
"dm3" o "dmt", file_type
devuelve maxima
. Si la extensión es
"l", "lsp" o "lisp", file_type
devuelve lisp
. Si la extensión
no es ninguna de las anteriores, file_type
devuelve object
.
Véase también pathname_type
.
Ejemplos:
(%i2) map('file_type,["test.lisp", "test.mac", "test.dem", "test.txt"]); (%o2) [lisp, maxima, maxima, object]
Valor por defecto: [l, lsp, lisp]
file_type_lisp
es una lista con extensiones de ficheros que Maxima
reconoce como fuente de Lisp.
Véase también file_type
Valor por defecto: [mac, mc, demo, dem, dm1, dm2, dm3, dmt]
file_type_maxima
es una lista con extensiones de ficheros que Maxima
reconoce como fuente de Maxima.
Véase también file_type
Evalúa las expresiones del archivo filename, trayendo variables,
funciones y otros objetos a Maxima. Una asignación hecha previamente a
una variable en Maxima será destruida por otra asignación que se le
haga en filename. Para encontrar el fichero, load
llama a
file_search
con file_search_maxima
y file_search_lisp
como directorios de búsqueda. Si la llamada a load
funciona correctamente,
devuelve el nombre del fichero; en caso contrario, load
muestra un mensaje de error.
La función load
trabaja indistintamente con código Lisp y Maxima.
Los ficheros creados con save
, translate_file
y compile_file
,
que crea código Lisp, y stringout
, que crea código Maxima, todos ellos
pueden ser procesados por load
. La función load
llama a loadfile
para cargar archivos en Lisp y a batchload
para cargar archivos en Maxima.
La función load
no reconoce las construcciones de tipo :lisp
en
ficheros de Maxima. Además, mientras se está procesando filename,
las variables globales _
, __
, %
y %th
mantienen los
valores que tenían cuando se realizó la llamada a load
.
Véanse también loadfile
, batch
, batchload
y demo
;
loadfile
procesa archivos en Lisp; batch
, batchload
y demo
procesan archivos en Maxima.
Véase file_search
para más detalles sobre el mecanismo de búsqueda de archivos.
La función load
evalúa sus argumentos.
Valor por defecto: false
Cuando se carga un fichero con las funciones load
, loadfile
o batchload
, a la variable load_pathname
se le asigna la
ruta al fichero en cuestión.
Se puede acceder a la variable load_pathname
mientras se está
cargando el fichero.
Ejemplo:
Supóngase que se tiene el fichero test.mac
en la carpeta
"/home/usuario/workspace/mymaxima/temp/"
con las siguientes
instrucciones:
print("The value of load_pathname is: ", load_pathname)$ print("End of batchfile")$
Entonces se obtiene el siguiente resultado:
(%i1) load("/home/usuario/workspace/mymaxima/temp/test.mac")$ The value of load_pathname is: /home/usuario/workspace/mymaxima/temp/test.mac End of batchfile
Evalúa las expresiones Lisp del archivo filename. La función
loadfile
no llama a file_search
, de manera que filename
debe incluir la extensión del archivo y su ruta completa.
La función loadfile
puede procesar ficheros creados por save
, translate_file
y compile_file
.
Puede ser más conveniente utilizar load
en lugar de loadfile
.
Valor por defecto: true
La variable loadprint
indica si mostrar un mensaje cuando se carga un archivo.
loadprint
vale true
, se muestra siempre un mensaje.
loadprint
vale 'loadfile
, muestra un mensaje sólo si el archivo es cargado con la función loadfile
.
loadprint
vale 'autoload
, muestra un mensaje sólo cuandi un archivo se carga automáticamente. Véase setup_autoload
.
loadprint
vale false
, nunca mostrará mensajes.
Valor por defecto: false
Los desarrolladores de paquetes que utilizan save
o translate
para crear paquetes (ficheros) que van a ser utilizados por terceros pueden
hacer packagefile: true
para evitar que se añada información a la
listas de información de Maxima, como values
o functions
.
Estas funciones devuelven las componentes de pathname.
Ejemplos:
(%i1) pathname_directory("/home/usuario/maxima/changelog.txt"); (%o1) /home/usuario/maxima/ (%i2) pathname_name("/home/usuario/maxima/changelog.txt"); (%o2) changelog (%i3) pathname_type("/home/usuario/maxima/changelog.txt"); (%o3) txt
Envía el fichero al que hace referncia la ruta path a la consola. path puede ser una cadena o un símbolo, en cuyo caso se convertirá en una cadena.
Si path hace referencia a un fichero accesible desde el directorio
actual de trabajo, entonces se enviará a la consola; en caso contrario,
printfile
intentará localizar el fichero añadiéndole path
a cada uno de los elementos de file_search_usage
a través de
filename_merge
.
printfile
devuelve la ruta del fichero encontado.
Alamacena los valores actuales de name_1, name_2, name_3, ..., en el archivo filename. Los argumentos son nombres de variables, funciones u otros objetos. Si un nombre no tiene un valor o una función asociado a él, entonces se ignora.
La función save
devuelve filename.
La función save
almacena datos en forma de expresiones Lisp.
Los datos almacenados por save
pueden recuperarse con load (filename)
.
El resultado de ejecutar save
cuando filename ya existe depende
del soporte Lisp implementado; el archivo puede ser sobreescrito o que save
envíe un mesaje de error.
La llamada save (filename, values, functions, labels, ...)
almacena los elementos cuyos nombres son values
, functions
,
labels
, etc. Los nombres pueden ser cualesquiera de los especificados
por la variable infolists
; values
incluye todas las variables
definidas por el usuario.
La llamada save (filename, [m, n])
almacena los valores
de las etiquetas de entrada y salida desde m hasta n. Nótese que
m y n deben ser números. Las etiquetas de entrada y salida
también se pueden almacenar una a una, por ejemplo, save ("foo.1", %i42, %o42)
.
La llamada save (filename, labels)
almacena todas las etiquetas de
entrada y salida. Cuando las etiquetas almacenadas en el archivo sean posteriormente
recuperadas, se sobreescribirán las activas en ese momento.
La llamada save (filename, name_1=expr_1, name_2=expr_2, ...)
almacena los valores de expr_1, expr_2, ...,
con los nombres name_1, name_2, ....
Es útil hacer este tipo de llamada para con etiquetas de entrada y salida, por ejemplo, save ("foo.1", aa=%o88)
.
El miembro derecho de la igualdad puede ser cualquier expresión, que será evaluada.
Esta llamada a la función save
no incorpora nuevos nombres a la sesión actual de Maxima,
simplemente los almacena en el archivo filename.
Todas estas formas de llamar a la función save
se pueden combinar a voluntad.
Por ejemplo, save (filename, aa, bb, cc=42, functions, [11, 17])
.
La llamada save (filename, all)
almacena el estado actual de Maxima,
lo que incluye todas las variables definidas por el usuario, funciones, arreglos, etc.,
así como algunos objetos definidos automáticamente.
Los elementos almacenados incluyen variables del sistema, como file_search_maxima
o
showtime
, si han sido modificadas por el usuario. Véase myoptions
.
save
evalúa filename pero no el resto de argumentos.
La función stringout
escribe expresiones en un archivo de la misma forma en
que se escribirían como expresiones de entrada. El archivo puede ser
utilizado entonces como entrada a las funciones batch
o demo
, y puede
ser editado para cualquier otro propósito.
La forma general de stringout
escribe los valores de una o más expresiones
en el archivo de salida. Nótese que si una expresión es una variable, solamente se
escribirá el valor de la variable y no el nombre de ésta. Como caso especial, y muy
útil en algunas ocasiones, las expresiones pueden ser etiquetas de entrada (%i1
,
%i2
, %i3
, ...) o de salida (%o1
, %o2
, %o3
, ...).
Si grind
vale true
, stringout
formatea la salida utilizando grind
.
En caso contrario, se utilizará el formato string
. Véanse grind
y string
.
La forma especial stringout (filename, [m, n])
escribe los valores
de las etiquetas de entrada desde la m hasta la n, ambas inclusive.
La forma especial stringout (filename, input)
escribe todas las etiquetas de
entrada en el archivo.
La forma especial stringout (filename, functions)
escribe todas las funciones
definidas por el usuario, contenidas en la lista global functions
, en el archivo.
La forma especial stringout (filename, values)
escribe todas las variables
asignadas por el usuario, contenidas en la lista global values
, en el archivo.
Cada variable se escribe como una sentencia de asignación, con el nombre de la variable
seguida de dos puntos y a continuación su valor. Nótese que la forma general de
stringout
no escribe las variables como sentencias de asignación.
Evalúa expr_1, expr_2, expr_3, ...
y escribe los resultados en el fichero f o flujo de salida s.
Las expresiones que se evalúan no se escriben. La salida puede generarse por medio
de print
, display
, grind
entre otras funciones.
La variable global file_output_append
controla si with_stdout
añade o reinicia el contenido del fichero de salida f.
Si file_output_append
vale true
, with_stdout
añade
contenido al fichero de salida. En cualquier caso, with_stdout
crea el fichero si éste no existe.
La función with_stdout
devuelve el valor de su último argumento.
Véase también writefile
.
(%i1) with_stdout ("tmp.out", for i:5 thru 10 do print (i, "! yields", i!))$ (%i2) printfile ("tmp.out")$ 5 ! yields 120 6 ! yields 720 7 ! yields 5040 8 ! yields 40320 9 ! yields 362880 10 ! yields 3628800
Comienza escribiendo una transcripción de la sesión de Maxima en el archivo filename. Cualquier interacción entre Maxima y el usuario se almacena también en este archivo, tal como aparece en la consola.
Puesto que la transcripción se escribe en el formato de salida a la consola, su contenido no es interpretable por Maxima.
Para hacer un archivo que contenga expresiones que puedan ser nuevamente cargadas en Maxima, véanse save
y stringout
; la función save
almacena expresiones en formato Lisp, mientras que stringout
lo hace en formato Maxima.
El resultado de ejecutar writefile
cuando el archivo filename ya existe depende del entorno Lisp operativo; el contenido anterior puede ser sobreescrito o ampliado con la sesión actual. La función appendfile
siempre añade la sesión al contenido actual.
Puede ser útil ejecutar playback
después de writefile
para guardar las interacciones previas de la sesión. Puesto que playback
muestra solamente las variables de entrada y salida (%i1
, %o1
, etc.),
cualquier salida generada por una sentencia de impresión desde dentro de una función no es mostrada por playback
.
La función closefile
cierra los archivos abiertos por writefile
o appendfile
.
Siguiente: Funciones y variables para salida TeX, Anterior: Archivos, Subir: Lectura y escritura [Índice general][Índice]