jueves, agosto 12, 2010

Lectura y Escritura en Lisp II

Hola otra vez,

Siguiendo el post anterior, continuamos con la pregunta que nos hacía un lector de este blog en esta entrada: http://aitoreus.blogspot.com/2007/10/lisp-1-leccin.html


Vamos a hacer el típico programa que nos dice si un número es primo o no.

Primero lo haremos de la forma habitual en Lisp, que es como me lo he encontrado en el foro de Ubuntu. Programando de esta forma no hace falta que utilicemos ninguna función de entrada-salida:




Yo utilizo el editor VIM porque me reconoce la sintaxis de cualquier lenguaje de programación.



Como véis lo único que hacemos es definir la función isprime().

Una vez que tengamos el Common Lisp instalado haremos lo siguiente:

1.-Botón derecho sobre el fichero de texto ISPRIME.LSP

2.-Seleccionar "COMPILE WITH CLISP".

3.-Botón derecho sobre el fichero que se ha generado ISPRIME.FAS

4.-Seleccionar "LOAD INTO CLISP".


De esta forma se carga en Clisp y podremos ejecutar... isprime pasándole el número que queremos comprobar:


Siguiendo las convenciones de Lisp la función devuelve T (true) si el número es primo y NIL (false o lista vacía) si no es primo.


Y ahora lo que me preguntaban... Cómo hacer una ejecución limpia donde sea el programa el que nos pregunte por el número.


Pues el programa adaptado quedaría así:



Hemos añadido un print, un read, una asignación de la entrada a una variable.

La diferencia es que ahora podemos ejecutarlo directamente sin cargar en CLisp la función.

Se haría dando al botón derecho sobre el fichero ISPRIME2.FAS y haciendo clic en "EXECUTE WITH CLISP".


Nota: he puesto al final una llamada a la función READ-LINE para que antes de cerrarse la ventana podamos ver el resultado. En cuanto le metes un ENTER se cerrará la ventana.


Saludos.

No hay comentarios: