racket/collects/lang/doc.txt
Matthew Flatt 7b13755dad unit clean-up
svn: r5160
2006-12-22 01:26:58 +00:00

74 lines
2.7 KiB
Plaintext

The "lang" collection defines a number of modules that can serve as
languages for other modules (i.e., as the initial import):
* _r5rs.ss_ - provides R5RS Scheme, which is defined in the "r5rs"
collection. This file is here only for backward compatibility, use
(lib "lang.ss" "r5rs") instead.
* _plt-pretty-big-text.ss_ - provides MzScheme plus the
following MzLib libraries: etc.ss, file.ss, list.ss,
class.ss, unit.ss, include.ss, defmacro.ss,
pretty.ss, string.ss, thread.ss, math.ss, match.ss, and
shared.ss. It also provides the posn, color, and image
functions of Beginning Student.
* _plt-pretty-big.ss_ - provides plt-pretty-big-text.ss
plus the MrEd classes. This corresponds to the
_Pretty Big Scheme_ language in DrScheme.
* _htdp-beginner.ss_ - provides Beginning Student
* _htdp-beginner-abbr.ss_ - provides Beginning Student with List Abbreviations
* _htdp-intermediate.ss_ - provides Intermediate Student
* _htdp-intermediate-lambda.ss_ - provides Intermediate Student with Lambda
* _htdp-advanced.ss_ - provides Advanced Student
In addition, the "lang" collection defines two modules that supply
special teaching functions:
* _posn.ss_ - provides the `posn' structure
* _imageeq.ss_ - provides the `image=?' function
----------------------------------------
_Teachpacks, Beginner_
_Teachpacks, Higher-order Primitives_
The _prim.ss_ module defines two syntactic forms for use by the
implementors of teachpacks, which the teachpack is to be used with the
Beginner Student languages. In Beginner Student, primitive names (for
built-in procedures) are distinguished from other types of
expressions, so that they can be syntactically restricted to
application positions.
> (define-higher-order-primitive id proc-id (arg ...)) - defines `id'
to be a primitive operator whose implementation is
`proc-id'. Normally, `id' is exported from the teachpack and
`proc-id' is not.
For each non-procedure argument, the corresponding `arg' should be
an underscore. For each procedure argument, the corresponding `arg'
should be the usual name of the procedure.
Example:
(define-higher-order-primitive convert-gui convert-gui/proc (f2c))
> (provide-higher-order-procedure id (arg ...)) - like above, but the
function `id' is exported as the primitive operator named `id'.
> (define-primitive id proc-id) - defines `id' to be a primitive
operator whose implementation is `proc-id', and which takes no
procedures as arguments. Normally, `id' is exported from the
teachpack and `proc-id' is not.
> (provide-primitive id) - like above, but the function `id' is
exported as the primitive operator named `id'.
> (provide-primitives id ...) - multi-provide version of
`provide-primitive'.