¿Qué hace que Common Lisp sea "grande"? [cerrado]

7

He estado aprendiendo Common Lisp y Racket, y una cosa que escucho constantemente es que Racket es un lenguaje mucho más "pequeño" que Common Lisp. Me preguntaba qué significaba esto realmente. Por lo que puedo decir, la sintaxis de Common Lisp no es mucho más grande que para Racket.

Básicamente, me pregunto qué es exactamente más grande acerca de la luz común común. ¿Tiene más sintaxis que no conozco? ¿Tiene ambientes más grandes? ¿Mayores ejecutables? Bibliotecas más grandes? ¿O alguna combinación de los mismos?

Por favor, esto no es un hilo de "cuál es mejor", me gustaría saber exactamente qué significa "más grande".

    
pregunta jepugs 10.06.2013 - 23:26

4 respuestas

4

Common Lisp tiene una gran biblioteca estándar. Entonces otra vez, también lo hace Racket.

La principal diferencia es que Racket separa todo en módulos, de modo que los programas que no usan toda la biblioteca estándar no tienen que verlo. Solo importa los bits que desea utilizar, y el resto queda perfectamente oculto.

    
respondido por el Chris Jester-Young 10.06.2013 - 23:34
9

Tal vez una medida objetiva (si es indirecta) sería útil aquí. Considere los tamaños de las especificaciones para los idiomas.

Racket es básicamente una implementación del esquema R6RS. La especificación R6RS es de 90 páginas, total. De eso, aproximadamente 25 páginas están dedicadas al lenguaje apropiado, y cerca de 30 más están dedicadas a su biblioteca estándar. Junto con eso, obtiene material introductorio, referencias, glosario, etc. Dependiendo del punto de vista, podría argumentar para un rango de aproximadamente 50 a 90 páginas como el total "real" de la especificación propiamente dicha.

La especificación de Common Lisp es de aproximadamente 1400 páginas en total. De nuevo, eso incluye material auxiliar. Sin embargo, creo que casi cualquier persona tendría que admitir / aceptar que la especificación en sí es de al menos 800 páginas.

En otras palabras, incluso si tomamos la estimación más pequeña posible para la especificación CL y la comparamos con la estimación más grande posible para el tamaño de R6RS, terminamos con la especificación CL aproximadamente 10 veces más grande que la Especificación del esquema.

    
respondido por el Jerry Coffin 11.06.2013 - 01:46
4

En realidad, Common Lisp ya no es muy grande en comparación con otros idiomas. Si observas la especificación de Common Lisp, verás que las páginas son muy largas y con frecuencia se trata de una construcción. El estándar Scheme, por ejemplo, describe una docena de funciones en una sola página, donde Common Lisp usa una página.

Los lenguajes

como R6RS + Libraries + SRFI , Racket o R7RS big no son realmente más pequeños que ANSI Common Lisp.

Donde Common Lisp es grande: cuando se toman en cuenta algunas de las bibliotecas semiestándar, como el MOP, las transmisiones basadas en CLOS, etc. de características de una manera extensa.

    
respondido por el Rainer Joswig 12.06.2013 - 22:30
2

Common Lisp tiene una biblioteca estándar muy grande en el paquete COMMON-LISP .

La biblioteca estándar de Scheme es mucho más pequeña; cada implementación viene con su propia biblioteca (a menudo lo suficientemente grande como para competir con las CL), generalmente en muchos módulos.

En cuanto a la sintaxis, que yo sepa, la sintaxis de Scheme es "fija", mientras que Common Lisp tiene herramientas muy poderosas que se pueden usar para modificar su reader . Por ejemplo, CLOCC / CLLIB / xml.lisp analiza XML usando READ !

    
respondido por el sds 11.06.2013 - 01:13

Lea otras preguntas en las etiquetas