Monad Transformers step by step
[lambda.git] / extending_racket.mdwn
1 *   [Unsafe operations](http://docs.racket-lang.org/reference/unsafe.html)
2 *   Racket [FFI](http://docs.racket-lang.org/foreign/index.html) |
3 [C API](http://docs.racket-lang.org/inside/index.html)
4 *   [Initialization etc](http://docs.racket-lang.org/reference/running-sa.html#%28part._init-actions%29)
5
6 ## Custom Languages ##
7
8 *   DrRacket/[HtDP Teaching Languages](http://docs.racket-lang.org/drracket/htdp-langs.html) |
9 [manuals](http://docs.racket-lang.org/htdp-langs/index.html) |
10 extending with "[teachpack](http://docs.racket-lang.org/teachpack/index.html)" libraries written in full language
11 *   Authoring HtDP teachpacks:
12 [intro](http://docs.racket-lang.org/drracket/extending-drracket.html#%28part._teachpacks%29) |
13 [details](http://docs.racket-lang.org/htdp/index.html)
14 *   [Adding Languages to DrRacket](http://docs.racket-lang.org/tools/adding-languages.html)
15
16
17 Racket users can define their own languages, as discussed in:
18
19 *   [Creating Languages](http://docs.racket-lang.org/guide/languages.html), including
20 [#lang s-exp](http://docs.racket-lang.org/guide/module-languages.html#%28part._s-exp%29)
21 ([more](http://docs.racket-lang.org/reference/reader.html#%28mod-path._s-exp%29))
22
23 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.
24
25 *   [Lists and Racket Syntax](http://docs.racket-lang.org/guide/Pairs__Lists__and_Racket_Syntax.html#%28part._lists-and-syntax%29)
26 *   [Module Syntax](http://docs.racket-lang.org/guide/Module_Syntax.html), including
27 the [#lang](http://docs.racket-lang.org/guide/Module_Syntax.html#%28part._hash-lang%29) shorthand
28 *   [The Reader](http://docs.racket-lang.org/reference/reader.html), including
29 [#reader](http://docs.racket-lang.org/reference/reader.html#%28part._parse-reader%29),
30 [#lang reader](http://docs.racket-lang.org/reference/reader.html#%28mod-path._reader%29)
31 *   [Core Syntax](http://docs.racket-lang.org/reference/syntax.html)
32 *   [#lang racket/kernel](http://docs.racket-lang.org/reference/Kernel_Forms_and_Functions.html)
33
34 <!-- -->
35 *   [Syntax: Meta-Programming Helpers](http://docs.racket-lang.org/syntax/index.html), including
36 syntax/[module-reader](http://docs.racket-lang.org/syntax/reader-helpers.html#%28mod-path._syntax%2Fmodule-reader%29)
37
38 *   [The Printer](http://docs.racket-lang.org/reference/printing.html) |
39 [output styles](http://docs.racket-lang.org/drracket/output-syntax.html)