racket/collects/help/servlets/scheme/what.ss
Eli Barzilay 9951d97d06 Added a teachpacks page, with links to both manuals,
more improvements.

svn: r3756
2006-07-18 23:43:55 +00:00

135 lines
5.5 KiB
Scheme

(module what mzscheme
(require "../private/util.ss"
"../../private/manuals.ss"
"../private/headelts.ss"
(lib "servlet.ss" "web-server"))
(provide interface-version timeout start)
(define interface-version 'v1)
(define timeout +inf.0)
(define (start initial-request)
(define stupid-internal-define-syntax
(report-errors-to-browser send/finish))
(define (standout-text s)
(with-color "forestgreen" `(B ,s)))
`(HTML
(HEAD ,hd-css ,@hd-links (TITLE "Scheme Languages"))
(BODY
(H1 "Scheme Languages")
(A ([NAME "scheme"] [VALUE "Language Family"]))
(A ([NAME "r5rs"] [VALUE "r5rs"]))
(A ([NAME "language levels"] [VALUE "language levels"]))
"From the introduction of " ,(main-manual-page "r5rs") " (R5RS):"
(P)
(DL (DD "Scheme is a statically scoped and properly "
"tail-recursive dialect of the Lisp programming "
"language [...] designed to have an exceptionally "
"clear and simple semantics and few different ways "
"to form expressions. A wide variety of programming "
"paradigms, including imperative, functional, and "
"message passing styles, find convenient expression "
"in Scheme."))
(P)
"DrScheme supports many dialects of Scheme. "
"The following dialects are specifically designed for "
"teaching computer science. In DrScheme's "
(A ([HREF "/servlets/scheme/what.ss#lang-sel"])
"language selection menu")
", they are found under the heading " (B "How to Design Programs") "."
(UL
(LI
(A ([NAME "beg"] [VALUE "Beginning Student language"]))
,(standout-text "Beginning Student")
" is a pedagogical version of Scheme "
"that is tailored for beginning computer "
"science students.")
(LI
(A ([NAME "begla"] [VALUE "Beginning Student with List Abbreviations language"]))
,(standout-text "Beginning Student with List Abbreviations")
" extends Beginning Student with convenient "
"(but potentially confusing) ways to write lists, "
"including quasiquote.")
(LI
(A ([NAME "int"] [VALUE "Intermediate Student language"]))
,(standout-text "Intermediate Student")
" adds local bindings and higher-order functions.")
(LI
(A ([NAME "intlam"] [VALUE "Intermediate Student with Lambda language"]))
,(standout-text "Intermediate Student with Lambda")
" adds anonymous functions.")
(LI
(A ([NAME "adv"] [VALUE "Advanced Student language"]))
,(standout-text "Advanced Student")
" adds mutable state."))
"The "
,(standout-text "Essentials of Programming Languages")
" language is designed for use with the MIT Press "
"textbook with that name."
(P)
"Other dialects are designed for practicing programmers. "
"The " (A ([NAME "r5rs2"] [VALUE "R5RS Scheme language"]))
,(standout-text "R5RS")
" language is a standard dialect of Scheme that is "
"defined by the "
,(main-manual-page "r5rs") ". "
(A ([NAME "full"] [VALUE "PLT Scheme language"]))
"In DrScheme's "
(A ([HREF "/servlets/scheme/what.ss#lang-sel"])
"language selection menu")
", the following languages "
"are found under the heading " (B "PLT") ":"
(UL
(LI
,(standout-text "Textual (MzScheme)")
" is a superset of R5RS Scheme. "
"In addition to the the base Scheme language, "
"PLT Scheme provides exceptions, threads, "
"objects, modules, components, regular expressions, "
"TCP support, filesystem utilities, and process "
"control operations. This language is defined in "
,(main-manual-page "mzscheme")
". ")
(LI
,(standout-text "Graphical (MrEd)")
" includes the " (standout-text "Textual (MzScheme)") " language "
"and adds a graphical toolbox, "
"described in "
,(main-manual-page "mred") ".")
(LI ,(standout-text "Pretty Big")
" is a superset of the "
(standout-text "Graphical (MrEd)")
" language, and adds forms from the "
(standout-text "Pretty Big")
" language."
" For those forms that are in both languages,"
" Pretty Big behaves like Graphical (MrEd)."))
"The "
(A ([NAME "module"] [VALUE "module"]))
,(standout-text "module")
" language supports development using PLT Scheme's "
,(manual-entry "mzscheme" "modules" `(CODE "module"))
" form, where the module's language is explicitly "
"declared in the code."
(P)
"See "
,(manual-entry "drscheme" "language levels" "the DrScheme manual")
" for further details on the languages, "
"especially the teaching languages."
(P)
"DrScheme's set of languages can be extended, "
"so the above list mentions only the languages installed "
"by default. "
"Documentation for all languages is available "
"through the "
(A ([HREF "/servlets/manuals.ss"]) "manuals page") "."
(P)
(A ([NAME "lang-sel"] [VALUE "language, setting"]))
"DrScheme's default language is Beginning Student. "
"To change the language, select the "
(B "Choose Language...")
" item in the "
(B "Language") " menu."))))