2011-08-22 12 views
20

Supongo que #lang racket es un dialecto de esquema con muchas más estructuras y funciones comunes y quizás sea más pedagógico. ¿Cuáles son las ventajas de una raqueta #lang contra el esquema #lang?Diferencias entre #lang scheme y #lang racket

¿Es mejor (o incluso posible) utilizar el esquema #lang en racket para seguir todo el contenido de 'Estructura e interpretación de programas informáticos' o incluso 'Cómo diseñar programas'. HtDP es #lang racket específico?

Cualquier código escrito en el esquema #lang, siempre que las bibliotecas no se incluyan, se puede utilizar en el esquema de pollo o en cualquier intérprete principal?

Gracias de antemano.

Respuesta

30
  1. Sí, #lang racket es el dialecto predeterminado raqueta, con una gran cantidad de extensiones.

  2. Dos lugares donde no es una extensión: if debe tener una rama else, y los pares son inmutables (sin set-car! y set-cdr!).

  3. #lang scheme se usó por un tiempo antes de que el cambio de nombre, y ahora #lang racket se usa constantemente. Pero mantuvimos #lang scheme en todo para la compatibilidad (así como varias bibliotecas scheme/--- que se mantienen y en algún momento pueden ser diferentes de racket/--- contrapartes). No hay ninguna razón para usar #lang scheme en un código nuevo.

  4. Para seguir al SICP, no use ninguno de estos; hay un lenguaje agradable que escribió Neil Van Dyke, consulte su web page para obtener más información.

  5. Para seguir HtDP, no use ninguno de estos, utilice los idiomas de los estudiantes. También existen nuevas variantes basadas en #lang como #lang htdp/bsl pero aún no están en una forma completa. (Y es HTDP no#lang racket específica.)

  6. No, la raqueta es muy diferente de pollo Esquema. Es posible que pueda ejecutar algún código en ambos, pero esos probablemente sean solo pequeños ejemplos de juguetes.

+0

Muchas gracias por la información de Eli, siendo para el propósito pedagógico voy a ir totalmente con la raqueta, lo que era muy bueno del esquema de pollo es la compilación de la parte C. – orlybg

+0

Con Racket no hay mucha necesidad de compilar para C: utiliza un compilador justo a tiempo que funciona bastante bien. Si le preocupa crear archivos ejecutables independientes en lugar de la velocidad, también hay formas de hacerlo: consulte 'raco exe' y' raco distribute'. –

+4

Solo para enfatizar una cosa aquí: '#lang scheme' es casi exactamente lo mismo que' #lang racket' - no es más similar a Chicken Scheme, o a SICP o HtDP que '#lang racket'. –

Cuestiones relacionadas