{"size": 1163, "ext": "scrbl", "max_stars_repo_path": "htdp-doc/teachpack/teachpack.scrbl", "max_stars_repo_name": "bdeket/htdp", "max_stars_repo_stars_event_min_datetime": "2015-01-14T20:28:41.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-20T04:04:26.000Z", "max_issues_repo_path": "htdp-doc/teachpack/teachpack.scrbl", "max_issues_repo_name": "bdeket/htdp", "max_issues_repo_issues_event_min_datetime": "2015-01-14T19:50:21.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-19T21:38:00.000Z", "max_forks_repo_path": "htdp-doc/teachpack/teachpack.scrbl", "max_forks_repo_name": "bdeket/htdp", "max_forks_repo_forks_event_min_datetime": "2015-01-14T19:11:38.000Z", "max_forks_repo_forks_event_max_datetime": "2022-03-24T05:11:39.000Z"}
{"max_stars_count": 85, "max_issues_count": 132, "max_forks_count": 81, "avg_line_length": 38.7666666667, "max_line_length": 78, "alphanum_fraction": 0.7747205503}
#lang scribble/doc

@(require scribble/manual
          (for-label scheme/base))

@title[#:style '(toc) #:tag "top"]{@italic{How to Design Programs} Teachpacks}

Teaching languages are small subsets of a full programming language. While
 such restrictions simplify error diagnosis and the construction of tools,
 they also make it impossible (or at least difficult) to write some
 interesting programs. To circumvent this restriction, it is possible to
 import teachpacks into programs written in a teaching language.

In principle, a teachpack is just a library written in the full language,
 not the teaching subset. Like any other library, it may export values,
 functions, etc. In contrast to an ordinary library, however, a teachpack
 must enforce the contracts of the ``lowest'' teaching language into which it
 is imported and signal errors in a way with which students are familiar at
 that level. 

This chapter covers the teachpacks for @italic{How to Design Programs}.

@table-of-contents[]

@include-section["htdp/scribblings/htdp.scrbl"]

@; removed: @include-section["htdc/scribblings/htdc.scrbl"]

@include-section["2htdp/scribblings/2htdp.scrbl"]
