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:
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:
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:
[CS245: Programming Languages - 2014, Fall](https://jupyter.brynmawr.edu/services/public/dblank/CS245%20Programming%20Languages/2014-Fall/Programming%20Languages,%20Syllabus.ipynb)
[CS245: Programming Languages - 2016, Fall](https://jupyter.brynmawr.edu/services/public/dblank/CS245%20Programming%20Languages/2016-Fall/Syllabus.ipynb)
## 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file calysto_scheme-1.4.1.tar.gz
.
File metadata
- Download URL: calysto_scheme-1.4.1.tar.gz
- Upload date:
- Size: 197.8 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9972fe1b648d5ce72c0657d7762916afa6eb3817f85d298735b1c9d28ab4e3e1 |
|
MD5 | 61c2363f478b826a2917abe880f31a56 |
|
BLAKE2b-256 | 2cbe4cb267b694b047182b10f6dca78a0653e66f2ee132a81c9a0cc118d92062 |
File details
Details for the file calysto_scheme-1.4.1-py2.py3-none-any.whl
.
File metadata
- Download URL: calysto_scheme-1.4.1-py2.py3-none-any.whl
- Upload date:
- Size: 312.2 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba7464f07a48587634e1b8aae507d1ce837f7bbedd81eb7872cdf57ba9394b30 |
|
MD5 | 5463a6c5d7ea3aefc3e27b5343c38f0d |
|
BLAKE2b-256 | 57ff708d9a9ee3bbfb296e07c52afdaa57ea93c5c9cc2e39baca624ae2f195a9 |