2012-01-22 11 views
10

¿Qué parte de Racket está escrita en Racket? Por ejemplo, ¿la función argmax está implementada en Racket o en C? ¿Qué tal tomar y soltar? No pude encontrarlo en la fuente en github.Fuente de raqueta y/o ejemplos de libro de cocina

La razón por la que pregunto es que como novato de Scheme/Racket sería muy útil tratar de obtener la fuente del código Racket más elegante posible, para obtener un control sobre las mejores prácticas recursivas/funcionales. Por supuesto, si todo se implementa principalmente en C, esta no es la dirección correcta para mí.

Como alternativa, ¿hay alguna página de "libro de recetas" o "ejemplos" en línea que muestre cómo recrear muchas de las incorporaciones en Racket, similares a "my-map" y "my-length"?

Gracias.

Respuesta

9

Puede descargar la fuente de raqueta usted mismo desde Github. Hay es suficiente código de raqueta para que valga la pena, pero prefiero mirar los módulos para ver ejemplos de "libros de cocina".

PLaneT es un buen recurso para el código de otras personas también.

+1

Gracias. /lib/racket/collects/racket/list.rkt contiene un gran punto de partida. – Scott

+0

También quiero alentar a PLaneT, que tiene enlaces a la fuente en todos los paquetes. Por ejemplo, tengo una biblioteca muy tonta de codificación de longitud de ejecución en http://planet.racket-lang.org/display.ss?package=rle.plt&owner=dyoo y puede inspeccionar su fuente en el enlace "Buscar" en esa página. – dyoo

5

Una porción entera de las bibliotecas de la raqueta está escrito en el lenguaje mismo, pero es sorprendente tratar de vadear a través de toda la fuente para encontrar y estudiar las funciones que le interesan. Si trabaja a través del texto Cómo para Diseñar Programas (http://htdp.org y http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html), escrito por los autores de Racket, usted en el proceso aprenderá y entenderá cómo escribir las funciones que ha solicitado (la implementación de las funciones take, drop, map, length y similares son directamente abordado entre un tercio y la mitad del camino a través del libro de texto).