Soy un experimentado programador de Windows/web C++/.NET/Java que intenta aprender (común) Lisp. Estoy leyendo Practical Common Lisp y usando SLIME.Aprendizaje de sugerencias de Lisp comunes para un programador de Windows/C++
Obtengo el lenguaje Lisp con bastante facilidad, pero tengo problemas para desarrollar la mecánica del desarrollo. Uno de mis problemas es lidiar con Emacs. No tengo experiencia con él y lo encuentro generalmente confuso con comandos difíciles de encontrar/descubrir.
preguntas específicas:
- tengo la REPL, pero no lo entiendo muy bien cómo puedo utilizarla de manera eficaz. Cuando necesito cambiar una función, tengo que volver a escribir el defun y hacer cambios (tedioso y propenso a errores). ¿Cómo puedo hacer esto mejor?
- ¿Cómo puedo obtener desde que ingreso el código en el REPL hasta tener realmente un programa? Estoy acostumbrado al modelo C donde tienes archivos de código que puedes revisar, editar y recompilar. Sé que Lisp tiene algo similar (a través de la función de carga), pero ¿cómo se obtiene una función que acabo de definir y probar en un archivo para guardar? Espero que haya un método mejor que mi selección actual + copiar + pegar.
- ¿Cómo se solucionan los errores? ¿Hay alguna posibilidad de entrar en el código como lo haría con otros idiomas?
- Siempre que la expresión S sea válida, no recibiré ningún error al ingresar un
(defun ...)
. No es hasta que intento usarlo que descubro que no es válido. ¿Hay alguna forma de obtener errores antes (es decir, compilar el código)? - ¿Hay algún IDE que me resulte más familiar o que me permita jugar con el idioma más fácilmente?
- ¿Debo cambiar a aprender Scheme en su lugar?
¡Cualquier consejo sería muy apreciado!
Es posible que también desee examinar Clojure; es un ceceo que opera en la JVM y tiene una buena interoperabilidad. con Java. Todavía no he trabajado con eso, pero he visto algunas conferencias y se ve bien. – paul