13 feb 2008

LISP

LISP esta “inspirado” en el Cálculo lambda, un modelo de computo equivalente a las máquinas de Turing, por lo tanto es un lenguaje que sigue el paradigma funcional, el proyecto que dio a luz a LISP fue dirigido por Jhon McCarthy; escribo “inspirado” entre comillas porque al parecer Jhon McCarthy no entendía mucho del Cálculo lambda, pues en su artículo Recursive Functions of Symbolic Expressions and their Computation by Machine, menciona que la notación lambda no era adecuada para nombrar a las funciones recursivas, cosa que es totalmente falso, tan falso era que treinta años antes de que McCarthy publicara su artículo se sabía de la equivalencia entre la teoría de las funciones recursivas y el cálculo lambda, al parecer McCarthy no tenía idea de esto.

LISP es acrónimo de LISt Processing, por lo que no es de sorprenderse que la principal estructura que utiliza LISP son las listas, por lo que tiene funciones básicas para procesar listas, algunas de estas son:

car(obtiene la cabeza de una lista), cdr(obtiene la cola de una lista), concat (concatena dos listas), etc.

Yo utilicé LISP para la materia de Inteligencia Artificial, nos pidieron programar el juego de “adivina quien”, el cual resultó fácil. Lo que no me gustó de este lenguaje es la gran cantidad de paréntesis que se usan para definir funciones mas o menos grandes pero sencillas, otra desventaja es que no es un lenguaje con tipos lo cual lo hace inseguro, algo no deseado en lenguajes de programación, LISP también es/fue utilizado para programar Emacs, el editor de textos con mayor funcionalidad en la historia, por lo que es muy fácil añadir cosas a Emacs sabiendo LISP, sin embargo a mi no me parece un lenguaje de programación llamativo o bueno para aprender a programar.


Un ejemplo de programa hecho en LISP es el siguiente:



(defun multiplica-por-7 (num)

“Multiplica NUM por 7”(interactive “p”)

(message “El resultado es: %d” (*7)))



No hay comentarios:

ga