Pregunta

He tratado de entender la diferencia entre Lisp y Lisp-1-2 y cómo esto se relaciona con Clojure pero yo todavía no entiendo correctamente. ¿Puede alguien me ilumine?

¿Fue útil?

Solución

Según Wikipedia :

Ya sea un espacio de nombres separado para las funciones es una ventaja es una fuente de controversia en la comunidad Lisp. Por lo general se conoce como el Lisp-1 frente a Lisp-2 debate. Lisp-1 se refiere al modelo de esquema y Lisp-2 se refiere al modelo de Common Lisp.

Se trata básicamente de si las variables y funciones pueden tener el mismo nombre sin chocar. Clojure es un Lisp-1 el sentido de que no permite el mismo nombre que se utilizará para una función y una variable simultáneamente .

Otros consejos

Si quieres puedes leer este papel por Richard Gabriel. Es un resumen de los temas que la comunidad Lisp discutían en Lisp1 vs Lisp2. Es un poco densa y de movimiento lento en las primeras secciones, pero es mucho más fácil de leer por el momento de recibir la sección pasado 5.

Básicamente, Lisp1 tiene un único entorno que mapea símbolos a los valores, y esos valores puede ser o bien "regular" o funciones. Lisp2 tiene (al menos) dos espacios de nombres (símbolos tienen una ranura para su valor de la función A y uno para un valor regular). Así, en Lisp2, puede tener una función foo llamado y una foo valor con nombre, mientras que en Lisp1, el nombre foo sólo puede referirse a un solo valor (función o de otro tipo).

Hay varias ventajas y desventajas y diferencias de sabor entre los dos, pero leer el periódico para los detalles. libro de Christian Queinnec, "Lisp en pequeños pedazos" también tiene discusión de las diferencias tejidas a través del texto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top