The Calysto Scheme Project
Douglas S. Blank James B. Marshall
Calysto Scheme is written in Scheme in Continuation-Passing Style, and
converted through a series of correctness-preserving program transformations
into Python. It has support for standard Scheme functionality, including
call/cc, as well as syntactic extensions, a nondeterministic operator for
automatic backtracking, and many extensions to allow Python interoperation.
Because of its Python foundation, it can take advantage of modern Python
libraries, including those for machine learning and other pedagogical contexts.
Although Calysto Scheme was developed with educational purposes in mind, it has
proven to be generally useful due to its simplicity and ease of installation.
It has been integrated into the Jupyter Notebook ecosystem and used in the
classroom to teach introductory Programming Languages with some interesting and
unique twists.