CRITERIOS DE ENTRADA-SALIDA en LISP





LISP es un lenguaje interactivo, por lo que las funciones de entrada-salida se realizan principalmente sobre el terminal. La mayoría de las implementaciones permiten también el almacenamiento de archivos en memoria secundaria, pero esto es muy dependiente de la implementación. En esta parte, trataremos sólo con las funciones de entrada-salida orientadas a terminal.

La función «read» no tiene argumentos y hace que se introduzca una lista por el terminal. Tiene la siguiente forma:

(read)

 Cuando se encuentra esta función, el programa espera que el usuario introduzca una lista, la cual se convertirá en el valor devuelto por esta función. Para asignar ese valor a una variable del programa, read puede combinarse dentro de una función «setq», como sigue:

 

(setq X (read))

 

En efecto, esto dice «asignar a X el siguiente valor de entrada». Por tanto, si escribimos 14 en respuesta a la función read, 14 será el valor de X.

La forma más directa de visualizar la salida sobre la pantalla de un terminal es usar la función «print», la cual tiene la siguiente forma:





 (print e)

 Aquí e puede ser cualquier expresión en LISP, y su valor se presentará sobre la pantalla como resultado de la ejecución de esta función.

En   LISP   existen   tres   variaciones   disponibles   de «print», las cuales se llaman «terpri», «prin1» y «princ». La expresión

 

(terpri)

 

se utiliza para saltar al comienzo de una nueva línea. La expresión

 

(prin1 e)

 

es  como (print e), excepto que no comienza en una nueva línea. La expresión

 

(princ e)

 

se utiliza para suprimir las barras verticales, las cuales se utilizan para encerrar los átomos que contienen caracteres especiales (como «$» y «blanco», los cuales no se permiten normalmente dentro de un átomo). Por ejemplo, si quisiéramos que un átomo tuviera el valor ¡HURRA! tendríamos que encerrarlo dentro de barras verticales, como las siguientes:

|¡ HURRA !|

 

Si  visualizáramos esto usando print o prin1, Las barras verticales también aparecerían.





También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *