create page
[lambda.git] / extending_racket.mdwn
1 *   Racket [FFI](http://docs.racket-lang.org/foreign/index.html) |
2 [C API](http://docs.racket-lang.org/inside/index.html)
3 *   [Unsafe operations](http://docs.racket-lang.org/reference/unsafe.html)
4 *   [Initialization etc](http://docs.racket-lang.org/reference/running-sa.html)
5
6 ## Teaching Languages ##
7
8 *   [DrRacket/How to Design Programs Teaching Languages](http://docs.racket-lang.org/drracket/htdp-langs.html)
9 *   [HtDP Languages](http://docs.racket-lang.org/htdp-langs/index.html)
10 *   [HtDP Teachpacks](http://docs.racket-lang.org/teachpack/index.html)
11 *   [Implementing HtDP & other customized teaching languages](http://docs.racket-lang.org/htdp/index.html)
12
13 ## Custom Languages ##
14
15 Racket users can define their own languages, as discussed in [Creating Languages](http://docs.racket-lang.org/guide/languages.html). Typically, a language name maps to its implementation through a module path by adding `/lang/reader`; for example, the language name `scribble/base` is expanded to `scribble/base/lang/reader`, which is the module that implements the surface-syntax parser.
16
17 *   [Syntax: Meta-Programming Helpers](http://docs.racket-lang.org/syntax/index.html)
18 *   [(require syntax/module-reader)](http://docs.racket-lang.org/syntax/reader-helpers.html#%28mod-path._syntax%2Fmodule-reader%29)
19 *   [#lang racket/kernel](http://docs.racket-lang.org/reference/Kernel_Forms_and_Functions.html)
20
21 *   [Extending DrRacket/Teachpacks](http://docs.racket-lang.org/drracket/extending-drracket.html#%28part._teachpacks%29)
22 *   [Adding Languages to DrRacket](http://docs.racket-lang.org/tools/adding-languages.html)
23 *   [#lang](http://docs.racket-lang.org/drracket/module.html) [more](http://docs.racket-lang.org/guide/Module_Syntax.html#%28part._hash-lang%29)
24 *   [Output Printing Styles](http://docs.racket-lang.org/drracket/output-syntax.html)