¿Cuál es la mejor manera de aprender LISP? [cerrado]


167

He estado programando en Python, PHP, Java y C durante un par de años, y acabo de terminar de leer Hackers and Painters, ¡así que me encantaría probar LISP!

Entiendo que es totalmente diferente de lo que sé y que no será fácil. También creo que (corríjame si me equivoco) hay mucha menos comunidad y desarrollo en torno a LISP. Entonces mi pregunta es: ¿cuál es la mejor manera de aprender LISP?

No me importaría comprar libros o invertir algún tiempo. Simplemente no quiero que se desperdicie.

La idea "final" sería usar LISP para el desarrollo web, y sé que eso no es tan común, así que ... Sé que es bueno planificar mi aprendizaje antes de elegir el primer libro o tutorial y dedicar mucho tiempo a algo que tal vez no se la mejor manera!

¡Gracias a todos por sus respuestas o comentarios!

editar: Leí Practical Common Lisp y fue: ... largo, duro, interesante y definitivamente me puse en marcha en Lisp, después de eso leí el pequeño intrigante, y fue breve, divertido y muy, muy bueno para mi programación general. Entonces, mi recomendación sería leer primero el pequeño esquema, luego (son un par de horas y vale la pena) si decides lisp (o esquema o cualquier dialecto) no es lo que estabas buscando, aún así te divertirás mucho ¡Nueva forma de pensar sobre la recursividad!


Lisp común: un enfoque interactivo . Libro antiguo (1992) de Stuart Shapiro. Solía ​​ser solo árbol muerto, pero en los últimos años está disponible en formato electrónico .
Kaz

Common LISPCraft de Robert Wilensky es un libro interesante, aunque antiguo. Tengo una copia impresa, fechada en 1986.
Kaz

Respuestas:


114

Intenta leer Practical Common Lisp , de Peter Seibel.


2
Creo que vi ese libro en mi campus ... ¡así que iré a buscarlo ahora mismo!
DFectuoso

2
¡No te olvides de la REPL! No he usado lo que aprendí sobre LISP, pero me hizo un programador mucho mejor en todos los demás idiomas.
Robert K

1
Lo recomiendo encarecidamente, este fue el libro que utilizamos para mi clase de IA para enseñarnos LISP para nuestros proyectos.
helloandre

66
DFectuoso: no es solo un enlace sobre el libro, es el libro. Comience a leer el libro en línea
Aaron

2
Sí, lo sé, pero no me gusta leer en el monitor ... de todos modos, elegí esta como la respuesta porque comencé a leer el libro y es bueno (soy más de la mitad y luego leeré el pequeño intrigante, lo editaré cuando termino ambos = 0)
DFectuoso

76

Mi favorito personal es Abelson & Sussman Estructura e interpretación de programas de computadora . Utiliza Scheme, que es un dialecto agradable y limpio de Lisp.

Si desea un enfoque más práctico, tal vez debería elegir un marco Lisp para diseño web (no tengo idea si existe tal bestia) y entrar de inmediato.


1
Paul Graham tiene un marco web lisp llamado arco.
graywh

15
Creo que Arc es su propio dialecto de Lisp, no solo un marco. paulgraham.com/arc.html
michiakig

55

Es posible que desee comenzar con The Little Schemer como calentamiento. No es un libro práctico sobre escribir programas de producción de Lisp, pero es un gran libro para aprender a pensar en Lisp.


¡Parece una lectura buena y rápida para comenzar! TY
DFectuoso

55
Tendería a estar en desacuerdo. Sí, sumergirse en él puede ser la forma más rápida de aprender Lisp, pero también es más probable que aleje a las personas. PCL tiene la ventaja de que los programas experimentados pueden comenzar utilizando Lisp desde el día 1, en lugar de simplemente ser mesmorized
Aaron

43

MIT ha puesto a disposición un curso completo de LISP en formato DIVX y MPEG. Lo recomiendo altamente.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/


3
Las conferencias se basan en su libro de texto, Estructura e interpretación de programas de computadora.
graywh

77
Encontré que los videos DivX tienen una calidad similar a los videos MPEG, a pesar de que son mucho más pequeños. Ahórrese el ancho de banda y el espacio en disco.
Drew Noakes el

2
Para ahorrar aún más espacio en el disco, vaya al enlace y busque "estructura e interpretación" (utilizando las comillas).
Bill Evans en Mariposa

Estoy revisando los videos SICP. ¿Qué dialecto están usando? No mencionan el dialecto, simplemente lo llaman 'LISP' ...
priestc

2
@priestc Sé que esta pregunta se hizo hace 4 años, pero solo para aclararla. Están usando "Esquema".
dptd

33

Ahora hay un libro llamado 'Land of LISP' que enseña la programación LISP a través de la escritura de juegos de texto al estilo de los 80. Lo estoy leyendo ahora, y está muy bien escrito y no se toma demasiado en serio, lo cual me gusta.


23

Hay varias opciones aquí. En primer lugar, Scheme y Common Lisp son bastante diferentes en aspectos bastante profundos (como el alcance); debes elegir uno para comenzar y quedarte con él por un tiempo . Soy un fanático de Common Lisp, pero esa puede ser una de esas preguntas religiosas de vi-vs-EMACS.

Para Scheme, elija el lenguaje de programación de esquemas de Kent Dybvig , seguido de SICP.

Para Common Lisp, así como Practical Common Lisp, recomendaría la exitosa Lisp de David Lamkins . Lisp exitoso también está disponible en línea de forma gratuita .

Después de eso , mira Lisp en Small Pieces de Queinnec, y Norvig's Lisp en AI book .

Marty Hall tiene una buena lista en Johns Hopkins.

Actualizado : no me refiero a mantenerlo para siempre, solo que tratar de aprender ambos a la vez sería confuso.



17

Recomendaría el Proyecto Euler como una excelente fuente de pequeños problemas que puede usar para aprender cualquier nuevo lenguaje de programación.


1
Ya soy un buen participante del Proyecto Euler, así que sí, el tiempo que pase allí practicará LISP (una vez que aprenda a hacer un par de cosas)
DFectuoso

9

Ansi Common Lisp de Paul Graham es un buen libro.

Creo que podría estar agotado, por lo que su mejor opción es obtenerlo a través de Amazon. Obtuve el libro para una clase de "Procesamiento del lenguaje natural". Tomé mi segundo año en la universidad. Tuvimos que escribir los proyectos de programación en LISP, por lo que necesitaba aprender Lisp rápidamente.

El libro me ayudó bastante.


8

Una vez tuve un problema. No sabía lisp. Así que decidí descargar LISP en una caja.

Luego me encontré con una instalación de Emacs sin ninguna ayuda o documentación.

Entonces tuve dos problemas.


2
El problema aquí es que alguien no te contó sobre el tutorial; presione Control-H, suéltelos y presione T. Eso lo llevará a un tutorial que le dará todo lo que necesita para comenzar. Siento escuchar tu mala experiencia.
JasonFruit

77
+1 para hacer referencia a la vieja broma regex, pero -1 por no ser útil. :-P
Michael H.

7

Para estudiantes serios, recomendaría PAIP de Norvig. Es un excelente recurso para aprender tanto Lisp como AI.


En segundo lugar, es un gran libro, bien escrito e IMO más inspirador que Practical Common Lisp.
Johan Kotlinski

6

Berkeley ofrece CS61a en formato de podcast. Esta es una introducción a la clase CS basada en SICP. Es una versión más moderna que los videos de 1982 que MIT tiene disponibles.


6

Estoy trabajando en Lisp en este momento y he encontrado "el libro" para aprender Lisp. Fue sugerido por Rainer Joswig

El libro se llama Common Lisp: Una introducción suave a la computación simbólica y se puede descargar como PDF. El autor comienza con un enfoque similar a UML para Lisp en el primer capítulo e introduce gradualmente más y más sintaxis de Lisp.

También he analizado el ceceo práctico y creo que el autor pasa por alto mucha información requerida, incluso para un programador experimentado. Este libro no parece hacer eso (no estoy completamente terminado, pero lo he encontrado lo suficientemente útil como para sugerir).

una cosa más, necesitará un entorno para trabajar. He encontrado que Lisp in a Box funciona bien. Se ejecuta en Windows y Linux y usa eMacs.


5

Me atrajo LISP por su dialecto JVM: Clojure. Clojure es una especie de gran LISP, ya que

  • tiene una "sintaxis simplificada", es decir, se requiere menos parathensis, hay un conjunto de colecciones de diseño inteligente disponible
  • está basado en JVM, por lo que hay un tiempo de ejecución estable y eficiente debajo, además todo el ecosistema de Java (bibliotecas, por ejemplo, controladores de bases de datos, herramientas de construcción, IDE) está a nuestro alcance
  • Noir es un buen marco web, las aplicaciones se pueden implementar en servidores web y de aplicaciones Java

En otras palabras, Clojure puede usarse en la producción aquí, ahora mismo.

Cuando se trata de recursos, hay al menos 4 libros y recursos en línea de Planty:



4

Para el desarrollo web, es posible que desee echar un vistazo a hunchentoot , un servidor web escrito en lisp común.


Sabes, es muy triste ver todos los servidores web y frameworks alrededor de lisp que están orientados a la web ... tienen un diseño CERO (CSS o incluso estilo en línea
DFectuoso

4

Descubrí que trabajar a través de los ejercicios en "The Little Schemer" realmente ayudó a perfeccionar el lado recursivo y de coincidencia de patrones de mi pensamiento y facilitó considerablemente el trabajo en XSLT.


2

Recomiendo primero la Introducción suave a la computación simbólica o Practical Common Lisp, según sus experiencias de programación. Para practicar, uso Allegro CL 8.2 Free Express Edition en Windows. Convierte la práctica en mucha diversión.


1

Una pregunta difícil de responder ... Creo que todo depende de tu estilo de aprendizaje.

Aprendí LISP en mis clases de AI y Expert Systems en la universidad, pero así es como aprendo ... No soy un gran aprendiz de libros, prefiero que alguien me lo explique en un entorno de clase.

LISP es definitivamente un lenguaje único y requiere un nuevo tren de pensamiento si está acostumbrado a la programación convencional en C, Java y PHP.

La mejor de las suertes para ti !


1

Encontré que leer el libro SICP realmente me ayudó a aprender. Utilicé Steel Bank Common Lisp (SBCL) y tuve un buen éxito con él.

Buena suerte


Gracias. Voy a elegir algunos libros hoy y comenzaré muy temprano mañana.
DFectuoso

Sin embargo, tenga en cuenta que SBCL es para Common LISP y el libro trata sobre Scheme. Todavía no lo leí completamente, pero creo que aún puede ser de gran ayuda para aprender Common LISP. Solo necesita encontrar los equivalentes en Common LISP.
Zelphir Kaltstahl


0

No sé si hay algo especial en Lisp que lo haga diferente de aprender cualquier otro idioma. Solo necesita comenzar a usarlo y probar sus características.

Una opción podría ser probar un proyecto simple .

Otra opción, que es específica para Lisp, sería escribir una extensión de Emacs que lo ayude en su trabajo habitual.


0

Lea estos libros en orden: Introducción suave a la computación simbólica, ANSI Common Lisp de Paul Graham y luego pase a Practical Common Lisp. O saltee ACL y úselo como referencia mientras trabaja a través de PCL.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.