¿Cómo debo comenzar con Lisp? [cerrado]

47

He estado programando durante años, trabajando a través de varias versiones de Blub (BÁSICO, ensamblador, C , C ++, Visual Basic, Java, Ruby en ningún orden particular de "Blub-ness") y me gustaría aprender Lisp. Sin embargo, tengo un montón de intertia con tiempo limitado (familia, trabajo a tiempo completo, etc.) y una felicidad cómoda con mi Blub actual (Java).

Entonces, mi pregunta es esta, dado que soy alguien a quien realmente le gustaría aprender Lisp, ¿cuáles serían los pasos iniciales para obtener un buen resultado que demuestre la superioridad de Lisp en el desarrollo web ? ? Tal vez me esté perdiendo el punto, pero así es como vería inicialmente la aplicación de mi conocimiento de Lisp.

Estoy pensando "usa el dialecto A, usa el IDE B, sigue las instrucciones en la página C, pregunta tu cordura después de las mónadas usando al consejero D". Simplemente me gustaría saber qué personas aquí consideran un conjunto óptimo de valores para A, B, C y quizás D. También alguna discusión sobre el mérito relativo de aprender un lenguaje tan poderoso en lugar de, digamos, convertirse en un Rails experto.

Solo para agregar más detalles, estaré desarrollando MacOS (o una VM de Linux); no será necesario ningún enfoque basado en Windows, gracias.

Notas para aquellos que solo están navegando por

Voy a mantener esta pregunta abierta por un tiempo para poder ofrecer comentarios sobre las sugerencias después de haberlas podido explorar. Si está navegando y siente que tiene algo que agregar, por favor, hágalo. Realmente agradecería sus comentarios.

Enlaces interesantes

Suponiendo que vienes a Lisp desde un fondo de Java, este conjunto de enlaces te ayudará a comenzar rápidamente.

  1. Uso del complemento La Clojure de Intellij para integrar Lisp ( videocast )
  2. Lisp para la Web
  3. Versión en línea de Practical Common Lisp (c / o Frank Shearar)
  4. Land of Lisp es una forma de (+ (+ very quirky) game based) pero lo hace todo tan sencillo
  5. Instala Clojure y Sublime 2 en MacOS una excelente guía de inicio
  6. Mire el libro Clojure in Action . Trabajó para mí.
pregunta Gary Rowe 22.11.2010 - 14:22

9 respuestas

18

Esto probablemente va en contra de las recomendaciones de la mayoría de las personas, pero al comienzo, evite Emacs, a menos que ya lo sepa. Especialmente si estás acostumbrado a IDE / editores modernos.

Estoy hablando por experiencia; Intenté comenzar con Emacs, pero tener que aprender el idioma Y el editor al mismo tiempo me frustró (especialmente porque Emacs es muy diferente de otras herramientas). Terminé chechándolo, comenzando con PLT Scheme (ahora Racket) que viene con un IDE multiplataforma relativamente simple, un centralizado a href="http://planet.racket-lang.org/"> repositorio de paquetes y documentos fabulosos (incluido un tutorial intermedio dirigido específicamente al desarrollo web ). Una vez que logré controlar a Lisp, terminé volviendo a Emacs, recogiendo EL / CL a través de Practical Common Lisp y Guía de Elisp de Xah . Básicamente, como lo veo, necesita conocer un Lisp antes de poder usar Emacs de manera efectiva, y necesita conocer Emacs para ser muy efectivo con CL / Elisp. Esto significa que puede seleccionar Scheme o aprender Common Lisp a través de algún otro editor primero (personal de LispWorks, probablemente).

Si ya conoces a Emacs, entonces sí, Elisp es el paso natural (aunque el hecho de que disfrutes el uso de Emacs sin saber que Elisp primero está más allá de mí).

YMMV, por supuesto, esto es justo lo que encontré ayudado.

Ya que tu blub actual es Java, probablemente puedas obtener una gran cantidad de kilometraje con Clojure , Armed Bear o Kawa . No he probado ninguno de ellos, no soy un tipo de Java, pero Clojure es altamente recomendado por otros Lispers que conozco. Parece que la capacidad de mantener su VM actual e IDE puede ayudar con el proceso de aprendizaje.

    
respondido por el Inaimathi 26.11.2010 - 02:05
10

Bueno, puedes golpear dos pájaros leyendo SICP ; uno es aprender LISP (Me refiero a que el esquema es un dialecto de Lisp) y otro es una gran idea de cómo programar. ¡¡Período !!

    
respondido por el Srinivas Reddy Thatiparthy 26.11.2010 - 10:04
10

Conrad Barski tiene un tutorial de excelente llamado Casting SPELs in Lisp (SPEL es su acrónimo de macros). Implica hacer un juego de tipo Aventura simple, y saltar directamente a las macros de Lisp. También ha estado trabajando en un libro introductorio que ahora está disponible en:

Aprenda a programar Lisp, un juego a la vez .

Y, de la tabla de contenido:

  • Cree su propio servidor web y utilícelo para jugar juegos basados en navegador
Sin embargo,

no sé lo que esto implica para el desarrollo web (como en las páginas HTML) usando Lisp. :)

Actualización: veo que alguien mencionó el libro "Estructura e interpretación de programas informáticos", que me recordó que MIT ha puesto en línea, el completo SICP Lecturas en video de Hal Abelson y Gerald Jay Sussman . Puede que hayas encontrado el libro seco, pero las conferencias son excelentes. A pesar de que están basados en Esquemas, aún atraviesan los conceptos básicos también en Lisp, muy bien. Vale la pena descargar y ver.

    
respondido por el Cyclops 25.11.2010 - 15:59
8

Para obtener una buena introducción básica al lenguaje, lea Practical Common Lisp de Peter Seibel . El libro es excelente.

Configurar emacs y SLIME puede ser complicado para un novato, donde "complicado" varía en magnitud dependiendo de su sistema operativo. Como de costumbre, Windows se queda con el extremo corto del stick, pero la gente ha hecho la parte difícil y lo escribió (SBCL, Emacs, SLIME).

Una vez que está fuera del camino, Planet Lisp hizo referencia a un artículo recientemente que describe cómo configurar Hunchentoot y nginx.

La edición específica del SO: MCLIDE puede ser un buen lugar para comenzar. Lo instalé, pero no tuve la oportunidad de usarlo realmente, así que no puedo decir nada útil sobre él. ¡Ciertamente parece interesante!

Editar: Eclipse también tiene el complemento Cusp .

    
respondido por el Frank Shearar 22.11.2010 - 14:37
6

Ya tengo muchas respuestas geniales, pero asumiendo que quieres meterte de cabeza en el desarrollo web con un Lisp, tengo algunas ideas más.

Clojure es el primer Lisp que he visto que tiene marcos web realmente completos de pila completa que están listos para el horario estelar.

  • Noir es un marco web sólido con enrutamiento, plantillas, etc., similar a Sinatra pero un poco más rico en funciones. Utiliza Ring, que es básicamente el equivalente de Clojure de Rack en Ruby.
  • Korma es una biblioteca de abstracción de SQL que se empareja muy bien con Noir.
  • Pinot es un marco del lado del cliente escrito completamente en ClojureScript, que nos lleva a:
  • Clojurescript es un compilador para Clojure que se enfoca en Javascript.

Si no te habías dado cuenta, solo cubrí toda la pila web y está todo escrito en Clojure.

Me parece un poco más fácil comenzar con Clojure que Common Lisp, con un conjunto de funciones / biblioteca mucho mejor que Scheme.

Si viene de un fondo de Java, tiene la ventaja adicional de ejecutarse en la JVM, que le brinda acceso a toda la plantilla de Java cuando la necesite.

La documentación disponible es un trabajo en progreso, al igual que los propios marcos. Pero hay un tutorial bastante bueno aquí mismo.

En cuanto a los editores ... si te sientes cómodo con vim, puedes usar vim con SLIMV. Si te gusta emacs, emacs / SLIME está bien. Hay bastante buen soporte de Eclipse y NetBeans para Clojure (o eso me dicen), pero generalmente uso TextMate (aunque Sublime Text 2 se está convirtiendo rápidamente en mi editor preferido). Sé que me estoy perdiendo un poco de magia Lisp que no usa un entorno más integrado, pero estoy feliz de golpear ⌘-Tab para intercambiar entre mi editor y REPL; su kilometraje puede variar.

Si desea que un libro le dé un impulso, le recomiendo Programming Clojure de Stuart Halloway y Aaron Bedra. La segunda edición acaba de salir de PragProg , por lo que está actualizada.

¡Feliz Lisping!

    
respondido por el Jason Lewis 05.06.2012 - 15:16
5

Otro comentarista, Inaimathi , recomendó este libro hace unos días: The Little Schemer

Lo recibí hoy y puedo decir que, como alguien que ha adquirido una biblioteca de libros de programación muy grande durante muchos años, es posible que solo haya leído un capítulo, pero definitivamente necesitaré una versión de tapa dura de este. Se lee como el Tao Te Ching, muchos pequeños fragmentos de sabiduría divina con respecto al idioma. Puede decir Scheme, pero originalmente se llamaba "The Little LISPer", los idiomas en el nivel que analiza son lo suficientemente similares para ser enseñados como uno solo.

No es un texto avanzado, pero tiene la misión de inculcar los principios del lenguaje y para qué sirve realmente, cómo pensar de esa manera. Creo que sería un excelente titular para LISP.

NB. La Matriz de Competencias del Programador En realidad, menciona este libro en el nivel superior de competencia de las cosas que debe buscar. (ver sección Libros)

    
respondido por el Orbling 26.11.2010 - 02:52
4

Un lugar muy agradable para comenzar a usar Lisp es dentro del editor de Emacs, donde se puede usar para redefinir casi cualquier cosa. Desea que la tecla 'e' inserte la fecha de la fecha, simplemente escriba un pequeño fragmento de código Lisp para generar la cadena y vincúlela a la tecla e. Hecho.

Esto también te permitirá usar lo que aprendes en una configuración diaria, si usas un editor simple durante el día.

    
respondido por el user1249 25.11.2010 - 20:51
3

Si va a desarrollar en una Mac, puede intentar Clozure CL . Viene con un IDE que tiene pulsaciones de teclado compatibles con Emacs, y hay un puente a Objective C para que pueda escribir aplicaciones Cocoa.

También, he leído Practical Common Lisp, pero encontré que Lisp exitoso fue útil como bien.

Finalmente, un poco de paciencia de tu parte será recompensada. La productividad y las victorias menores llegarán bastante rápido, pero la gran victoria puede llevar un tiempo.

    
respondido por el Larry Coleman 22.11.2010 - 15:04
2

Tengo una copia de ANSI Common Lisp aquí en mi escritorio. Lo recojo cada dos años y paso un par de capítulos, luego me quedo atascado en un par de ejercicios y se desliza hacia abajo en la lista de prioridades. Sin embargo, eso probablemente te dice más sobre mí que el libro. El libro parece totalmente competente ...

    
respondido por el glenatron 26.11.2010 - 00:07

Lea otras preguntas en las etiquetas

Comentarios Recientes

Los aspectos más importantes de todos los lenguajes de programación son la abstracción y el desacoplamiento, que se conocen como los principios de coincidencia de patrones. Lisp tiene un claro énfasis en lograr la simplicidad. Aprender de Lisp lo ayuda a desacoplar la complejidad, es decir, la transformación del código y las herramientas proporcionadas por el usuario a terceros. Si bien la mayoría de los lenguajes de programación son complejos y oscuros, el uso de Lisp no lo es. Aprender la semántica de los... Lee mas