Simple Scheme Interpreter
This is an interpreter for a sub-set of the Scheme programming language. It was written as a learning exercise, and should not be used for anything important. The interpreter is open-source software, the source code is available on GitHub.
To use the interpreter, write your Scheme code into a text file and run
scheme.py, passing the file name and location as a
command-line argument, for example:
python scheme.py mycode.txt
The interpreter supports basic arithmetic and equality operators, conditional statements, the
Each statement in the source file will be evaluated in turn, and any printable results will be displayed to standard output. A few working Scheme programs and their resulting output are shown below:
(define factorial ( lambda (n) ( if (= n 1) 1 (* n (factorial (- n 1))) ) ) ) (factorial 6)
(define fib ( lambda (n) ( if (< n 3) 1 (+ (fib (- n 1)) (fib (- n 2))) ) ) ) (fib 10)
(define ackermann ( lambda (m n) ( if (= m 0) (+ n 1) (if (= n 0) (ackermann (- m 1) 1) (ackermann (- m 1) (ackermann m (- n 1)))) ) ) ) (ackermann 3 3)
Use this form to send feedback, if you want a reply please include your email address!