1. Introduction

1.1 What is Psyche?

Psyche is a Scheme interpreter written in Python. It allows you to embed a Scheme interpreter in any Python program; it's very easy to extend the interpreter with new commands, written in Python.

I decided to build Psyche when I was reading Structure and Interpretation of Computer Programs[2]; this book uses Scheme as its example language and it looked like a nice language to toy around with. Soon, this got out of hand, resulting in this product.

The name is a combination of the first two letters of Python and the first four letters of Scheme. Originally, this program was called pyscheme, until I discovered this program already exists[4]. However, since pyscheme is not fully Scheme compliant either, I felt confident enough to continue with Psyche.

1.2 Why is Psyche not Scheme?

In its current stage, Psyche is not yet a real Scheme interpreter since it does not fully implement the Scheme standard R5RS[1]. Full R5RS compliance is currently the main goal of Psyche.

The most interesting features that are missing are:

Appendix A contains a complete overview of the R5RS compliance.

1.3 About This Document

This document consists of two parts. The first part is a cross between a tutorial and a developer's guide. It focuses on the different aspects of Psyche. After reading this part, you should be able to use Psyche to its full potential.

The second part is an API Reference of the Psyche modules. It covers the psyche.interpreter, psyche.types and psyche.schemefct modules.

Y. Duppen