2012-01-22 3 views
10

Сколько ракетки написано в Racket? Например, функция argmax реализована в Racket или C? А как насчет взять и бросить? Я не мог найти его в источнике на github.Источники ракет и/или примеры поваренной книги

Причина, по которой я прошу, состоит в том, что в качестве новичка Scheme/Racket было бы очень полезно попытаться найти источник столь элегантного кода Racket, как я мог, чтобы получить представление о функциональных/рекурсивных лучших практиках. Конечно, если все в основном реализовано в C, это не подходит для меня.

В качестве альтернативы, есть ли страница «поваренная книга» или «примеры» где-то в Интернете, показывающая, как воссоздать многие встроенные в Racket, похожие на «my-map» и «my-length»?

Спасибо.

ответ

9

Вы можете скачать источник ракетки самостоятельно с Github. Там есть достаточно кода ракетки там быть целесообразным, но я предпочитаю смотреть на модули для таких примеров «кулинарной книги».

PLaneT - хороший ресурс для кода других людей.

+1

Спасибо. /lib/racket/collects/racket/list.rkt содержит отличную точку прыжка. – Scott

+0

Я хочу также поощрять PLaneT, который имеет ссылки на источник во всех пакетах. Например, у меня очень глупая библиотека кодировки длины в http://planet.racket-lang.org/display.ss?package=rle.plt&owner=dyoo, и вы можете проверить ее источник в разделе «Обзор» на этой странице. – dyoo

5

Многие библиотеки Racket написаны на самом языке, но подавляющее желание пробраться через весь источник, чтобы найти и изучить интересующие вас функции. Если вы работаете с текстом How (http://htdp.org и http://www.ccs.neu.edu/home/matthias/HtDP2e/index.html), написанные авторами Racket, вы будете изучать и понимать, как писать функции, о которых вы просили (реализация функций take, drop, map, length и т. д. непосредственно адресовано от одной трети до половины пути через учебник).

Смежные вопросы