# MyScheme **Repository Path**: arucil/MyScheme ## Basic Information - **Project Name**: MyScheme - **Description**: A simple Scheme interpreter written in Scheme - **Primary Language**: Scheme - **License**: MIT - **Default Branch**: scheme - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-12-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyScheme This is a Scheme interpreter written in Scheme, composed of a compiler and a virtual machine. # Features Most R5RS features are implemented. - [x] First-class procedure - [x] Proper tail call - [x] `Eval` function - [x] Quasiquotation - [x] First-class continuation (`call/cc`) - [x] Hygienic macro (`syntax-rules`) - [x] Local macro (local `define-syntax`, `let-syntax` and `letrec-syntax`) - [x] Multiple values # Run ## Using ChezScheme Run Scheme source files: ```bash $ cd src && scheme --script main.scm filename... ``` or play with REPL: ```bash $ cd src && scheme # in ChezScheme ... > (load "runtime.scm") ;; load REPL facility > (repl) ;; starting MyScheme REPL ... myscheme> ``` # Bibliography - *Lisp in Small Pieces*, Christian Queinnec - *Macro-by-Example*, Eugene Kohlbecker, et al - *Macros that work*, William Clinger, et al - *The Scheme Programming Language, 4th Edition*, R. Kent Dybvig - *Revised^5 Report on the Algorithmic Language Scheme*, H. Abelson, et al