适用于Jupyter的Scheme内核,可以使用Python库
项目描述
# Calysto Scheme
您可以通过点击以下按钮尝试Calysto Scheme而无需安装任何东西
Calysto Scheme 是一种真正的Scheme编程语言,完全支持continuations,包括call/cc。它还可以使用所有Python库。还有一些扩展使其更有用(步进调试器、选择/失败、堆栈跟踪),或使其更好地与Python集成。有关使用Calysto Scheme的更多详细信息,请参阅
在Jupyter笔记本中,因为 Calysto Scheme 使用 [MetaKernel](https://github.com/Calysto/metakernel/blob/master/README.rst),它有一套完全支持的“魔法”——用于额外功能的元命令。这包括并行运行Scheme。查看所有 [MetaKernel Magics](https://github.com/Calysto/metakernel/blob/master/metakernel/magics/README.md)。
Calysto Scheme是用Scheme编写的,然后翻译成Python(和其他后端)。整个功能都位于一个Python文件中: https://github.com/Calysto/calysto_scheme/blob/master/calysto_scheme/scheme.py 但是您可以轻松地安装它(见下文)。
Calysto Scheme 在使用
[CS245: 编程语言 - 2014,秋季](https://jupyter.brynmawr.edu/services/public/dblank/CS245%20Programming%20Languages/2014-Fall/Programming%20Languages,%20Syllabus.ipynb)
[CS245:编程语言 - 2016年秋季](https://jupyter.brynmawr.edu/services/public/dblank/CS245%20Programming%20Languages/2016-Fall/Syllabus.ipynb)
## 并行处理
要在并行中使用Calysto Scheme,请按照以下步骤操作:
确保已安装Python模块ipyparallel。在shell中,输入
` pip install ipyparallel `
要使笔记本中的扩展可用,在shell中,输入
` ipcluster nbextension enable `
要在本地IP地址上启动一个由10个节点组成的集群,在shell中,输入
` ipcluster start --n=10 --ip=192.168.1.108 `
在笔记本中从主内核(可以是任何元内核内核)初始化代码以使用10个节点,输入
` %parallel calysto_scheme CalystoScheme `
在笔记本中并行运行代码,输入
并行执行单行
` %px (+ 1 1) `
或并行执行整个单元格
` %%px (* cluster_rank cluster_rank) `
结果按cluster_rank顺序以Scheme向量的形式返回。因此,上述操作将产生以下结果
`scheme #10(0 1 4 9 16 25 36 49 64 81) ` 您可以通过访问变量_(单下划线)从主Scheme获取结果。
请注意,您可以使用变量cluster_rank来分割问题的部分,以便每个节点都在做不同的事情。
在上面的示例中,使用-e在主Scheme中评估代码。请注意,cluster_rank在主机机器上未定义,并且假设主机内核与并行机器相同。
完整的笔记本示例可以在此处找到:[Mandelbrot.ipynb](https://github.com/Calysto/metakernel/blob/master/examples/Mandelbrot.ipynb)
## 安装
确保您的系统已安装jupyter,如果您想使用qtconsole选项,还需要安装pyQt和qtconsole。
您可以使用Python3安装Calysto Scheme
` pip3 install --upgrade calysto-scheme --user python3 -m calysto_scheme install --user `
或在系统内核文件夹中使用
` sudo pip3 install --upgrade calysto-scheme sudo python3 -m calysto_scheme install `
您也可以使用-sys-prefix将安装到您的虚拟环境中。
将pip3/python3更改为使用不同的pip或Python。使用的Python版本将决定Calysto Scheme如何运行。
在Jupyter控制台、qtconsole或笔记本中使用它
` jupyter console --kernel calysto_scheme jupyter qtconsole --kernel calysto_scheme jupyter notebook `
您也可以仅使用Python程序,但它没有花哨的读取-评估-打印循环。只需运行
` python calysto_scheme/scheme.py `
## 需求
Python3
metakernel(自动安装)
Calysto Scheme还可以在PyPy下运行以提高性能。
## 特点
Calysto Scheme支持
延续性
使用所有Python库
choose/fail - 内置fail和重试
生成类似于Python的堆栈跟踪(带有行号)
测试套件
计划
面向对象类定义和实例创建
完整的Scheme函数(现在可以回退到Python)
限制
在CPython上运行速度较慢;尝试PyPy
项目详情
下载文件
下载适用于您平台的应用程序文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
calysto_scheme-1.4.8-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | f8c2c21fc9ae2ec28c766656b1647a22fc4f2a97d77606bc986712b8978fcb8d |
|
MD5 | fc75e71d99a7bcc7a7568dc78011553f |
|
BLAKE2b-256 | e018637cefec056ed337b11ed249f75d978a53a3db0660b7f5e4243f2bf70093 |