Skip to main content

A Scheme kernel for Jupyter that can use Python libraries

Project description

# Calysto Scheme

Calysto Scheme is a real Scheme programming language, with full support for continuations, including call/cc. It can also use all Python libraries. Also has some extensions that make it more useful (stepper-debugger, choose/fail, stack traces), or make it better integrated with Python.

In Jupyter notebooks, because Calysto Scheme uses [MetaKernel](https://github.com/Calysto/metakernel/blob/master/README.rst), it has a fully-supported set of “magics”—meta-commands for additional functionality. This includes running Scheme in parallel. See all of the [MetaKernel Magics](https://github.com/Calysto/metakernel/blob/master/metakernel/magics/README.md).

Calysto Scheme is written in Scheme, and then translated into Python (and other backends). The entire functionality lies in a single Python file: https://github.com/Calysto/calysto_scheme/blob/master/calysto_scheme/src/Scheme.py However, you can easily install it (see below).

Calysto Scheme in use:

## Install

You can install Calysto Scheme with Python3:

` pip3 install --upgrade calysto-scheme --user python3 -m calysto_scheme install --user `

or in the system kernel folder with:

` sudo pip3 install --upgrade calysto-scheme sudo python3 -m calysto_scheme install `

Change pip3/python3 to use a different pip or Python. The version of Python used will determine how Calysto Scheme is run.

Use it in the console, qtconsole, or notebook with IPython 3:

` ipython console --kernel calysto_scheme ipython qtconsole --kernel calysto_scheme ipython notebook `

## Requires

  • ipython=>3.0

  • Python2 or Python3

  • metakernel (installed automatically)

## Features

Calysto Scheme supports:

  • continuations

  • use of all Python libraries

  • choose/fail - built in fail and try again

  • produces stack trace (with line numbers), like Python

  • test suite

Planned:

  • Object-oriented class definitions and instance creation

  • complete Scheme functions (one can fall back to Python for now)

Limitations:

  • Currently a couple of magnitudes slower than Python

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calysto_scheme-1.2.2.tar.gz (78.9 kB view details)

Uploaded Source

Built Distribution

calysto_scheme-1.2.2-py2.py3-none-any.whl (80.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file calysto_scheme-1.2.2.tar.gz.

File metadata

File hashes

Hashes for calysto_scheme-1.2.2.tar.gz
Algorithm Hash digest
SHA256 9ce37e1d72635782c9a2ff36dddd647ab459a5229a2a5a7a5c94e007fb9fc035
MD5 3db733cb21582c99892f083f12b8dc79
BLAKE2b-256 e8f56720f67130c96b8363c2f5d3639c7566e9fff080f5da116c9505c3e0335a

See more details on using hashes here.

File details

Details for the file calysto_scheme-1.2.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for calysto_scheme-1.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 096fc50cbcd5802a10a06d90d733742216101b59a7f0fe195d2e4728daf4622c
MD5 65bd88e16ae56303dc228f05c27994af
BLAKE2b-256 af0f9c3723f8ab3a8ef921d9f330dbb0cde3cacdcb84e075490906a56a3a92f1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page