refine and reorg, add racket links
authorjim <jim@web>
Wed, 4 Feb 2015 02:06:03 +0000 (21:06 -0500)
committerLinux User <ikiwiki@localhost.members.linode.com>
Wed, 4 Feb 2015 02:06:03 +0000 (21:06 -0500)
_learning_scheme.mdwn

index db93523..3a83771 100644 (file)
-#[Try Scheme in your web browser](http://tryscheme.sourceforge.net/)#
+*   [Try Scheme in your browser](http://tryscheme.sourceforge.net/) (slow, bare-bones)
+*   This site's guide to [[Installing Scheme|/installing#scheme]]
 
 
-Initial Tutorials
-=================
+<!-- -->
+*   Wikipedia on
+[Lisp](http://en.wikipedia.org/wiki/Lisp_%28programming_language%29),
+[Scheme](http://en.wikipedia.org/wiki/Scheme_%28programming_language%29),
+[Racket](http://en.wikipedia.org/wiki/Racket_%28programming_language%29), and
+[Chicken](http://en.wikipedia.org/wiki/CHICKEN_%28Scheme_implementation%29)
 
 
-*      [[!wikipedia Scheme (programming language) desc="Wikipedia overview of Scheme"]]
 
 
-If you are new to programming or if you have the patience to do so, you should work through a textbook.
+## Tutorials ##
 
 
-*      A warmly-recommended introduction available online is [Teach Yourself Scheme in Fixnum Days](http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html) This is a short introductory text that introduces common Scheme techniques.
+*   [Welcome to Racket](http://docs.racket-lang.org/guide/intro.html#%28part._.Interacting_with_.Racket%29) from Racket Guide
 
 
-*      The Little Schemer book(s) we recommended for the seminar are good introductions, requiring some more commitment.
+If you are new to programming or if you have the patience to do so, you should work through a textbook:
 
 
-+      [How to Design Programs](http://www.htdp.org/2003-09-26/), by Matthias Felleisen, et al., is another good choice, which the Racket groups recommends. Whenever the book says "Scheme," you can read it as "Racket."
+*   a recommended text available online is [Teach Yourself Scheme in Fixnum Days](http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html)
+*   the *Little Schemer* book(s) we recommended for the seminar are good introductions, requiring more commitment
+*   [How to Design Programs](http://www.ccs.neu.edu/home/matthias/HtDP2e/) (HtDP),
+by Matthias Felleisen, et al., is another good choice, which the Racket group recommends  
+(the [1st ed](http://htdp.org/2003-09-26/Book/) <!-- go up a level for solutions, extra problems, errata -->
+is also available, and covers some additional topics like mutation; whenever the book says "Scheme," you can read it as "Racket")
 
 
+If you're already a programmer and you're in more of a hurry:
 
 
-If you're already a programmer and you're in more of a hurry, you could instead look at:
+*   you could look at the [Quick Introduction to Racket](http://docs.racket-lang.org/quick/index.html), which uses DrRacket and a picture-drawing library
+*   or [An Introduction to Lambda Calculus and Scheme](http://www.jetcafe.org/~jim/lambda.html)
 
 
-*      the [Quick Introduction to Racket](http://docs.racket-lang.org/quick/index.html). This tutorial provides a brief introduction to the Racket programming language by using DrRacket and one of Racket's picture-drawing libraries.
 
 
-*      [An Introduction to Lambda Calculus and Scheme](http://www.jetcafe.org/~jim/lambda.html) is also aimed at programmers.
 
 
-More details
-============
+## Advanced Racket Docs ##
 
 
-*      After any of the preceding, you could move on to [Racket Guide](http://docs.racket-lang.org/guide/index.html). This starts with a tutorial on Racket basics; then it describes the rest of the Racket language. This guide is intended for programmers who are new to Racket or new to some part of Racket. It assumes programming experience, so if you are new to programming, you should instead start with one of the textbooks listed above. This Guide describes parts of the Racket language which go beyond the learning-oriented fragments of How to Design Programs.
+*   [Racket Guide](http://docs.racket-lang.org/guide/index.html) starts with a tutorial, then describes the rest of the Racket language. Intended for programmers who are new to (at least some part of) Racket. If you are new to programming, you should instead start with one of the textbooks listed above. Describes parts of the Racket language that go beyond the learning-oriented fragments of HtDP.
+*   [Racket Reference Manual](http://docs.racket-lang.org/reference/index.html) defines the core Racket language and its most prominent libraries. Less friendly than Racket Guide, but more precise and complete.
+*   <form action="http://docs.racket-lang.org/search/index.html" method="get">
+Racket API Search: <input type="text" name="q" />
+</form>
+*   [#lang r5rs](http://docs.racket-lang.org/r5rs/index.html), "cons" expresses mcons
+*   [#lang r6rs](http://docs.racket-lang.org/r6rs/index.html) or #!r6rs
+*   Supported [SRFIs](http://docs.racket-lang.org/srfi/index.html)
+*   [(require data)](http://docs.racket-lang.org/data/index.html)
+[(require math)](http://docs.racket-lang.org/math/index.html)
+*   The [Stepper](http://docs.racket-lang.org/stepper/index.html)
+*   [Macro debugger](http://docs.racket-lang.org/macro-debugger/index.html)
+*   [Syntax: Meta-Programming Helpers](http://docs.racket-lang.org/syntax/index.html)
 
 
-Even more details
-=================
+<!-- -->
+*   Racket: [latest release](http://download.racket-lang.org/) |
+[blog](http://blog.racket-lang.org/) |
+[wiki](https://github.com/plt/racket/wiki)
+*   [raco](http://docs.racket-lang.org/pkg/) package manager, [also](http://docs.racket-lang.org/raco/index.html)
+*   [package repository](http://pkgs.racket-lang.org/#)
+*   [Style guide](http://docs.racket-lang.org/style/index.html) "How to Program Racket"
+*   Racket [source](https://github.com/plt/racket/) |
+[bugs](http://bugs.racket-lang.org/)
 
 
-*      The [Complete Racket Reference Manual](http://docs.racket-lang.org/reference/index.html) defines the core Racket language and describes its most prominent libraries. The Racket Guide is friendlier; though less precise and less complete.
+<!-- -->
+*   Typed Racket [guide](http://docs.racket-lang.org/ts-guide/index.html) [ref](http://docs.racket-lang.org/ts-reference/index.html)
+*   [Lazy Racket](http://docs.racket-lang.org/lazy/index.html)
+*   [PLT Redex](http://redex.racket-lang.org/), for specifying and testing operational semantics
 
 
-*      The Scheme language is standardized; the various implementations of the
+
+
+## Advanced Chicken Docs ##
+
+
+*   <form action="http://api.call-cc.org/cdoc" method="get">
+Chicken API Search:
+<a href="">Chickadee</a> <input name="q" type="text" />
+<input type="submit" name="query-name" hidden value="Look+up" />
+<input type="submit" name="query-regex" value="regex" />
+</form>
+
+
+
+## Other Scheme Links ##
+
+The Scheme language is standardized; the various implementations of the
 language usually adhere to what's published in the current standard and add on
 different handy extensions. The first standard was published in 1975. A
 language usually adhere to what's published in the current standard and add on
 different handy extensions. The first standard was published in 1975. A
-revision was published in 1978 called "The revised report on Scheme, a
+revision was published a few years later called "The revised report on Scheme, a
 dialect of Lisp." Thereafter, revisions of the standard were titled "The
 Revised Revised Report..." and so on, or "The Revised^n Report..." for
 short. One widely implemented standard is [The
 Revised^5 Report on Scheme](http://www.schemers.org/Documents/Standards/R5RS/HTML/),
 or R5RS, published in 1998.
 dialect of Lisp." Thereafter, revisions of the standard were titled "The
 Revised Revised Report..." and so on, or "The Revised^n Report..." for
 short. One widely implemented standard is [The
 Revised^5 Report on Scheme](http://www.schemers.org/Documents/Standards/R5RS/HTML/),
 or R5RS, published in 1998.
-A new standard [R6RS](http://www.r6rs.org/final/html/r6rs/r6rs.html) ([Libraries for R6RS](http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib.html))
-was ratified in 2007, and this is implemented in Racket; but it also has many detractors and has not been fully
-accepted in the community. As a result, the Scheme language [may in the future split](http://scheme-reports.org/2009/position-statement.html)
-into a lean, minimal base, closer to
-R5RS Scheme, and a richer language like R6RS Scheme that standardizes many of the add-ons that programmers tend to build
-on top of the base.
-
-*      [Scheme FAQ](http://community.schemewiki.org/?scheme-faq)
-
-*      [The Scheme Programming Language](http://scheme.com/tspl4/), by R. Kent Dybvig ([errata](http://scheme.com/tspl4-errata.html))
-
-<!--
-*      [Scheme Requests for Implementation](http://srfi.schemers.org/) (SRFI)
-*      The [Schematics Scheme Cookbook](http://schemecookbook.org/) is a collaborative effort to produce documentation and recipes for using Scheme for common tasks.
--->
+Another standard [R6RS](http://www.r6rs.org/final/html/r6rs/r6rs.html) ([libraries](http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib.html))
+was ratified in 2007, but had many detractors and wasn't fully accepted in the community. Currently Scheme is being split into a lean minimal base, now ratified as
+[R7RS-small](http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs.pdf)
+([errata](http://trac.sacrideo.us/wg/wiki/R7RSSmallErrata)),
+and a richer language
+[R7RS-large](http://www.scheme-reports.org/2015/working-group-2.html)
+(still being designed) that standardizes many add-ons.
+
+*   [Scheme FAQ](http://community.schemewiki.org/?scheme-faq)
+*   [Scheme Requests for Implementation](http://srfi.schemers.org/) (SRFIs)
+
+
+<!-- -->
+*   [The Scheme Programming Language](http://scheme.com/tspl4/), by R. Kent Dybvig ([errata](http://scheme.com/tspl4-errata.html))
+*   [Programming Languages: Application and Interpretation/2ed](http://cs.brown.edu/courses/cs173/2012/book/)
+*   The [Schematics Scheme Cookbook](http://schemecookbook.org/) is a collaborative effort to produce documentation and recipes for using Scheme for common tasks.
+*   [The Adventures of a Pythonista in Schemeland](http://www.phyast.pitt.edu/~micheles/scheme/index.html)
+*   [Stack Overflow](http://stackoverflow.com/questions/tagged/scheme?sort=faq) questions tagged "scheme"