HtDP: Languages as Libraries
1 HtDP Beginning Student
The lang/htdp-beginner module provides the Beginning
Student language for How to Design Programs; see Beginning Student.
2 HtDP Beginning Student with Abbreviations
The lang/htdp-beginner-abbr module provides the
Beginning Student with Abbreviations language for How to Design Programs; see
Beginning Student with List Abbreviations.
3 HtDP Intermediate Student
The lang/htdp-intermediate module provides the
Intermediate Student language for How to Design Programs; see
4 HtDP Intermediate Student with Lambda
The lang/htdp-intermediate-lambda module provides the
Intermediate Student with Lambda language for How to Design Programs; see
Intermediate Student with Lambda.
5 HtDP Advanced Student
The lang/htdp-advanced module provides the Advanced
Student language for How to Design Programs; see Advanced Student.
6 Pretty Big Text (Legacy Language)
The lang/plt-pretty-big-text module is similar to the
HtDP Advanced Student language, but with more of Racket’s
libraries in legacy form. It provides the bindings of
mzlib/shared, and lang/posn.
7 Pretty Big (Legacy Language)
The lang/plt-pretty-big module extends
lang/plt-pretty-big-text with scheme/gui/base
and lang/imageeq. This language corresponds to the
Pretty Big legacy language in DrRacket.
8 posns in HtDP Languages
structure type that is also provided by
9 Image Equality in HtDP Languages
The image-comparison operator that is also provided by
10 Primitives in HtDP Beginner
The lang/prim module several syntactic forms for
use by the implementors of teachpacks, when the teachpack is to be
used with the How to Design Programs 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.
Defines id to be a primitive operator whose implementation
is proc-id, and that takes no procedures as
arguments. Normally, id is exported from the teachpack and
proc-id is not.
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.
If expr is an identifier for a first-order function (either a
primitive or a function defined within Beginner Student), produces the
function as a value; otherwise, the form is equivalent to
This form is mainly useful for implementing syntactic forms that, like
the application of a higher-order primitive, allow first-order bindings
to be used in an expression position.