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.1.tar.gz (78.8 kB view details)

Uploaded Source

Built Distribution

calysto_scheme-1.2.1-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.1.tar.gz.

File metadata

File hashes

Hashes for calysto_scheme-1.2.1.tar.gz
Algorithm Hash digest
SHA256 d1d8231a56061bef1c5649f2c0391564c4acf38de66244ad178601dedb63a731
MD5 01f11da20ef27bcac9d4fa4d6ff0b0b2
BLAKE2b-256 d5ab33eba953cbd8209179091111b8bb943d4b85ab0126c38e92f1d501aada68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for calysto_scheme-1.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b783be5e2517f4be1c6165e689a9dbe6dbd77025e865f803355324d5a6e5a894
MD5 a6b3192c4ab74554d37932a16e6d325e
BLAKE2b-256 7b753da71a8c0f80d7ae0f2cf055c91980ed80d842d8f14803497b01ef856a0b

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