simbolos pronunciation programacion lenguaje language compiler programming-languages lisp scheme common-lisp

programming languages - pronunciation - ¿Esquema o Lisp común?



scheme simbolos (11)

Soy un programador intermedio, y he decidido aprender ya sea un esquema común o un esquema. Mi pregunta es simple, ¿cuál elegirías? No me importa mucho la dificultad de la sintaxis, solo el poder, la flexibilidad y otros aspectos del lenguaje en sí. Además, ¿qué implementación de lisp o esquema común debería elegir? ¡Gracias!


No me importa mucho la dificultad de la sintaxis, solo el poder, la flexibilidad y otros aspectos del lenguaje en sí.

La sintaxis es igualmente difícil o no en ningún lisp. La sintaxis de Clojure es un poco más fácil para los no lispers porque se utilizan diferentes corchetes. Esto hace más diferencia de lo que uno podría esperar.

Tanto Clojure como CL tienen excelentes libros introductorios. No he leído los libros de esquema en profundidad, pero parecen tener un sabor más académico en comparación.

Recomendaría Clojure o Common Lisp a un neófito, basado en la experiencia personal.

Clojure es más funcional y eminentemente práctico. Si utilizo CL, recomiendo un IDE (Allegro y otros tienen versiones gratuitas), o usar un editor de texto y responder. En otras palabras, no uses limo. Para Clojure no puedo pensar en ningún IDE, pero ¿quizás Textmate o Eclipse tengan algo?

Scheme tiene algunos IDE muy buenos también como DrScheme. Pero me resultó más fácil mantenerme comprometido cuando se trata de un proyecto real, y tanto Clojure como CL parecían hacerlo más fácil.


Common Lisp es mucho más útil, pero el esquema es mucho más limpio. Sobre todo se reduce a eso.


Como tantas cosas, depende de lo que quieras hacer .

Recuerde, si elige uno ahora, no le impide cambiar más tarde . De hecho, me resultó bastante fácil pasar de conocer un pequeño Esquema a aprender mucho de Clojure.

Si solo quieres aprender y jugar con un Lisp, o incluso construir programas moderadamente complejos, diría que Scheme es probablemente una mejor opción. Tiene una biblioteca estándar más limpia y más nítida (más pequeña), y hay muchos recursos que se adaptan al alumno (tampoco que no hay para CL).

Si desea el poder en bruto de toneladas de bibliotecas (muchas de ellas muy bien escritas) y el kit de herramientas de una biblioteca estándar (como estándar que obtiene una implementación de CL) que viene con una CL, entonces sería su mejor opción.

Alternativamente, sugeriría Clojure . Es un lenguaje relativamente nuevo (<5 años), pero tiene mucho a su favor. Está diseñado para la concurrencia, con una gran cantidad de primitivas que facilitan la escritura de programas seguros para el estado si necesita tener un estado. Y muchos otros beneficios, aunque, una vez más, la biblioteca estándar logra mantenerse pequeña .

También está en la JVM, por lo que tiene acceso a todas las bibliotecas que usaría si estuviera usando Java, en caso de que necesite alguna de ellas, más la velocidad en bruto que la JVM tiene para ofrecer está a su alcance.

Sin embargo, es un nuevo idioma, con una comunidad nueva (¡pero muy amigable!). Si solo quieres meter tus dedos en la piscina de Lisp, diría que Scheme es tu mejor opción. Si quieres hacer las cosas, mi preferencia y mi amor es Clojure.

EDITAR Honestamente, no puedes equivocarte con ninguno de los tres. Uno puede ser mejor dependiendo de lo que quieras hacer, y recomendaría Clojure a casi cualquier persona.


El esquema es de igual o mayor poder de Common Lisp, pero no tiene tanto soporte o enlaces. Yo iría con Common Lisp. ¿En cuanto a la implementación? He estado usando sbcl en slime / swank por un tiempo, y es bastante bueno y rápido. El limo es muy agradable.



Esta es una vieja;) Emacs o vi? ¿KDE o Gnome? ¿Rojo o blanco?

La mayor diferencia entre los dos es que Scheme tiende a centrarse en la programación funcional; algunos autores enfatizan la programación funcional en Common Lisp, como Paul Graham, y si escribo Common Lisp, sigo sus consejos.

Tiendo a preferir Scheme ya que solo tiene más sentido para mí. Descubrí que la comunidad Scheme, particularmente en lo que respecta a las implementaciones de software libre, está mucho más centrada en el software libre. Considera eso si es importante para ti. Contrariamente a la creencia popular, Common Lisp es un lenguaje muy popular, pero está más detrás de las puertas corporativas cerradas. Ese fue un gran factor para que me alejara de Common Lisp: cuando la comunidad no es tan abierta, no encontrará tanto en la forma de ayuda y bibliotecas.

En cuanto a las implementaciones, recomendaría Guile si usted es un usuario de GNU / Linux. Otras implementaciones están demasiado lejos de la corriente principal de la conciencia GNU; Me gusta la comunidad GNU, por lo que Guile fue la mejor opción para mí. Además, Guile tiene el mejor conjunto de bibliotecas incluidas en la instalación predeterminada que he encontrado (considerando que a diferencia de los otros encuestados, no sé nada acerca de Clojure).

He visto a otros encuestados repetir el antiguo encantamiento: "Si quieres hacer algo, usa Common Lisp; si quieres aprender, usa Esquema". Probablemente fue así en la era del SICP , pero no creo que sea cierto en estos días. Una buena implementación de Scheme, como Guile, tiene un montón de bibliotecas disponibles y tiene un montón de buenos casos de uso que muestran que puedes hacer muchas cosas con él.


Mi impresión: Common Lisp es más para hacer las cosas, Scheme es más para la educación y la diversión. Prefiero la implementación de SBCL. Esquema, no lo sé.


Normalmente lo veo así: Common Lisp es Scheme como C ++ es Python. Con Common Lisp y C ++, se le da una gran cantidad de herramientas y mucha potencia y, esencialmente, se le permite moverse libremente. Con Scheme, por otro lado, hay más énfasis en la simplicidad y se te da un poco menos de cuerda para que te cuelgues.

Y al igual que con C ++ vs. Python, existe la idea de que uno es para proyectos reales y adultos, mientras que el otro es una especie de lenguaje de juguete para jugar o crear scripts desechables, aunque en la mayoría de los casos el "juguete" es lo suficientemente bueno para lo que sea que necesites hacer.

Si quieres mirar Scheme, te recomiendo el racket-lang.org . No es un esquema estrictamente estándar, pero es esencialmente el mismo y es una distribución de "baterías incluidas".


Si desea escribir código práctico y / o desea un buen grado de portabilidad de una implementación a otra, use Common Lisp. Hay once implementaciones actualmente en mantenimiento activo. Ver mi encuesta de implementaciones.

Las diferentes implementaciones tienen diferentes puntos fuertes. Si desea una versión gratuita, de código abierto, Clozure Common Lisp (CCL) (¡no debe confundirse con "Clojure"!) Y Steel Bank Common Lisp (SBCL) son buenas implementaciones de propósito general. También hay implementaciones comerciales, las más conocidas son Allegro Common Lisp y LispWorks. Para la compatibilidad con Windows, Corman Common Lisp tiene instalaciones útiles. Para incrustar, Embedded Common Lisp (ECL) es excelente (no tiene que usarlo de forma integrada). Si desea un Common Lisp que se compile en la Máquina Virtual de Java, hay Armed Bear Common Lisp (ABCL). Vea el papel para otros; cuál quieres depende de tus circunstancias individuales


Si quieres potencia y flexibilidad vas con Common Lisp.

Si quieres limpio y sencillo vas con Scheme.

Hasta ahora estoy contento con SBCL.


Tengo una afinidad por los lenguajes de programación más pragmáticos, barrocos y verrugosos, así que seleccioné Common Lisp.

Utilizo GNU clisp, pero estoy considerando cambiar a SBCL debido a su enfoque en la eficiencia.