Skip to main content

A Scheme kernel for Jupyter that can use Python libraries

Project description

# Calysto Scheme

[![codecov](https://codecov.io/gh/Calysto/calysto_scheme/branch/master/graph/badge.svg)](https://codecov.io/gh/Calysto/calysto_scheme) [![CircleCI](https://circleci.com/gh/Calysto/calysto_scheme.svg?style=svg)](https://circleci.com/gh/Calysto/calysto_scheme)

You can try Calysto Scheme without installing anything by clicking on the following button:

[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/Calysto/calysto_scheme/master?filepath=notebooks%2FReference%20Guide%20for%20Calysto%20Scheme.ipynb)

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. For more details on using Calysto Scheme, see:

http://nbviewer.jupyter.org/github/Calysto/calysto_scheme/blob/master/notebooks/Reference%20Guide%20for%20Calysto%20Scheme.ipynb

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/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 `

You can also use the –sys-prefix to install into your virtualenv.

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 Jupyter console, qtconsole, or notebook:

` jupyter console --kernel calysto_scheme jupyter qtconsole --kernel calysto_scheme jupyter notebook `

You can also just use the Python program, but it doesn’t have a fancy Read-Eval-Print Loop. Just run:

` python calysto_scheme/scheme.py `

## Requires

  • Python3

  • metakernel (installed automatically)

Calysto Scheme can also be un under PyPy for increased performance.

## 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:

  • Runs slow on CPython; try PyPy

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

Uploaded Source

Built Distribution

calysto_scheme-1.4.2-py2.py3-none-any.whl (313.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: calysto_scheme-1.4.2.tar.gz
  • Upload date:
  • Size: 198.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5

File hashes

Hashes for calysto_scheme-1.4.2.tar.gz
Algorithm Hash digest
SHA256 c483a7f40bfe1ec8d2da12a91954a82d5e24242c2996d5ba6bbbb13e5dc1294e
MD5 390506b4b8df975b3da9b1abd4c0a476
BLAKE2b-256 7a1af58c1f292aa72d4d1aded26008261c45ac65aef228cf1a2f105aa2d3e99d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: calysto_scheme-1.4.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 313.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.5

File hashes

Hashes for calysto_scheme-1.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 561a936380b438a85d74ec53b7cfe58635ad4ea5b02f430dc89b72d1fe053095
MD5 927be388e60efec6be557ac8d892db70
BLAKE2b-256 86bb7609a086f07f477beb66a35702a306fc522e4935c3243b9827ef75d70395

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