ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

LISP


Enviado por   •  21 de Octubre de 2018  •  Resúmenes  •  1.732 Palabras (7 Páginas)  •  153 Visitas

Página 1 de 7

[pic 1][pic 2][pic 3]

Introducción.

El LISP es un lenguaje de programación creado por el profesor John McCarthy a finales de los años 50. John McCarthy quiso desarrollar un lenguaje que mostrara la información estructurada en listas en las que se pudieran gestionar esta. De ahí el nombre que le dio a este lenguaje, Lisp (List-Processing), porque fue creado principalmente para el procesamiento de listas.

Con el trascurso del tiempo el Lisp dio origen a varios dialectos. Entre los más importantes podemos citar a: el MACLISP, COMMONLISP, INTERLISP, ZETALISP, etc. De todos ellos el COMMONLISP se está consolidando como el estándar. Del Lisp posteriormente surgió otro lenguaje de programación importante como es el Logo.

El Lisp es un lenguaje funcional que se apoya en la utilización de funciones matemáticas para el control de los datos. Pero el elemento fundamental en el Lisp es la lista. Y desde el punto de vista más amplio del término. Cada función del lisp y cada programa que generemos con él vienen dado en forma de lista. Por esta razón los datos no se pueden diferenciarse sintácticamente de los programas.

Objetivo.

“Adivina personaje” es un juego en el cual el jugador piensa en cualquier personaje, para después hacerle una serie de preguntas que ira respondiendo con “sí” o “no”, para poder llegar a un posible personaje de acuerdo a las pistas anteriores.

Desarrollo

  • Para que el programa comenzara a funcionar hice un árbol binario de decisión que guarde en un archivo .txt y al cual el programa hace referencia a fin de poder ir relacionando las características de cada personajes y adivinar el que el usuario ha pensado.
  • Para que el árbol crezca es necesario jugar mucho con el programa, si el programa no adivina tu personaje te pide el nombre a fin de almacenarlo.

  • Elegí el software para poder realizarlo, el cual fue LISP.

[pic 4]

  • Este es el código de mí programa, el cual está compuesto por funciones, necesita adicionalmente el árbol, el cual está guardado en un archivo llamado árbol.txt:

(defun juega()

        ;creacion del arbol

        (setq a (open "Adivina_animal/arbol.txt" :direction :input))

        (with-open-file (a "Adivina_animal/arbol.txt" :direction :input))

        (setf arbol (read a))

        (close a)

        (close a)

        (inicio)

        ;ActuaCOMENCEMOSel arbol

        (setq a (open "Adivina_animal/arbol.txt" :direction :output))

        (format a (prin1-to-string arbol))

        (close a)        

)

(defun inicio()

                (princ "~%Bienvenido, apuesto a que puedo adivinar el personaje en el que piensas.~%Responde las preguntas con un Si o un No~%COMENCEMOS!!")

                (format t "~%")

                (evalua arbol)

                (format  t "~%")

                (princ "Quieres intentarlo de nuevo? ")

                (if (string-equal (read-line) "si") (inicio) 'FIN)

)

(defun evalua (lista)

        (princ (car lista))

        (setq resp (read-line))

        (cond

                ((and (string-not-equal resp "si") (string-not-equal resp "no"))

                        (princ "Si no quieres jugar esta bien, muchos matarian por estar aqui sabes!~% Responde solo con si o no...")

                        (format t "~%")

                        (evalua lista))

                ((and (= (length (car (cdr lista))) 1 ) (string-equal resp "si") )

                        (princ (car (car (cdr lista))))

                        lista                        

                )

                ((and (string-equal resp "no") (not (listp (car (cdr (cdr lista))))) )

                        (princ (car (cdr (cdr lista))))

                        (format t "~%")

                        (princ "En que personaje pensabas?: ")

...

Descargar como (para miembros actualizados)  txt (6.8 Kb)   pdf (578 Kb)   docx (599.7 Kb)  
Leer 6 páginas más »
Disponible sólo en Clubensayos.com