post safe division, rename/reorg a bit
[lambda.git] / extending_racket.mdwn
index 21d81bd..efb218f 100644 (file)
@@ -1,24 +1,39 @@
+*   [Unsafe operations](http://docs.racket-lang.org/reference/unsafe.html)
 *   Racket [FFI](http://docs.racket-lang.org/foreign/index.html) |
 [C API](http://docs.racket-lang.org/inside/index.html)
-*   [Unsafe operations](http://docs.racket-lang.org/reference/unsafe.html)
-*   [Initialization etc](http://docs.racket-lang.org/reference/running-sa.html)
+*   [Initialization etc](http://docs.racket-lang.org/reference/running-sa.html#%28part._init-actions%29)
 
-## Teaching Languages ##
+## Custom Languages ##
 
-*   [DrRacket/How to Design Programs Teaching Languages](http://docs.racket-lang.org/drracket/htdp-langs.html)
-*   [HtDP Languages](http://docs.racket-lang.org/htdp-langs/index.html)
-*   [HtDP Teachpacks](http://docs.racket-lang.org/teachpack/index.html)
-*   [Implementing HtDP & other customized teaching languages](http://docs.racket-lang.org/htdp/index.html)
+*   DrRacket/[HtDP Teaching Languages](http://docs.racket-lang.org/drracket/htdp-langs.html) |
+[manuals](http://docs.racket-lang.org/htdp-langs/index.html) |
+extending with "[teachpack](http://docs.racket-lang.org/teachpack/index.html)" libraries written in full language
+*   Authoring HtDP teachpacks:
+[intro](http://docs.racket-lang.org/drracket/extending-drracket.html#%28part._teachpacks%29) |
+[details](http://docs.racket-lang.org/htdp/index.html)
+*   [Adding Languages to DrRacket](http://docs.racket-lang.org/tools/adding-languages.html)
 
-## Custom Languages ##
 
-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.
+Racket users can define their own languages, as discussed in:
 
-*   [Syntax: Meta-Programming Helpers](http://docs.racket-lang.org/syntax/index.html)
-*   [(require syntax/module-reader)](http://docs.racket-lang.org/syntax/reader-helpers.html#%28mod-path._syntax%2Fmodule-reader%29)
+*   [Creating Languages](http://docs.racket-lang.org/guide/languages.html), including
+[#lang s-exp](http://docs.racket-lang.org/guide/module-languages.html#%28part._s-exp%29)
+([more](http://docs.racket-lang.org/reference/reader.html#%28mod-path._s-exp%29))
+
+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.
+
+*   [Lists and Racket Syntax](http://docs.racket-lang.org/guide/Pairs__Lists__and_Racket_Syntax.html#%28part._lists-and-syntax%29)
+*   [Module Syntax](http://docs.racket-lang.org/guide/Module_Syntax.html), including
+the [#lang](http://docs.racket-lang.org/guide/Module_Syntax.html#%28part._hash-lang%29) shorthand
+*   [The Reader](http://docs.racket-lang.org/reference/reader.html), including
+[#reader](http://docs.racket-lang.org/reference/reader.html#%28part._parse-reader%29),
+[#lang reader](http://docs.racket-lang.org/reference/reader.html#%28mod-path._reader%29)
+*   [Core Syntax](http://docs.racket-lang.org/reference/syntax.html)
 *   [#lang racket/kernel](http://docs.racket-lang.org/reference/Kernel_Forms_and_Functions.html)
 
-*   [Extending DrRacket/Teachpacks](http://docs.racket-lang.org/drracket/extending-drracket.html#%28part._teachpacks%29)
-*   [Adding Languages to DrRacket](http://docs.racket-lang.org/tools/adding-languages.html)
-*   [#lang](http://docs.racket-lang.org/drracket/module.html) [more](http://docs.racket-lang.org/guide/Module_Syntax.html#%28part._hash-lang%29)
-*   [Output Printing Styles](http://docs.racket-lang.org/drracket/output-syntax.html)
+<!-- -->
+*   [Syntax: Meta-Programming Helpers](http://docs.racket-lang.org/syntax/index.html), including
+syntax/[module-reader](http://docs.racket-lang.org/syntax/reader-helpers.html#%28mod-path._syntax%2Fmodule-reader%29)
+
+*   [The Printer](http://docs.racket-lang.org/reference/printing.html) |
+[output styles](http://docs.racket-lang.org/drracket/output-syntax.html)