Skip to content

An implementation of Scheme subset written in Ruby

License

Notifications You must be signed in to change notification settings

tkhsh/rb-scheme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CircleCI

RbScheme

An implementation of Scheme subset written in Ruby. It's based on the Stack-Based model introduced in Three Implementation Models for Scheme by R. Kent Dybvig. The model is implemented by a compiler and virtual machine.

Features

  • first class closures
  • global variables
  • integers/symbols/cons cell/true/false
  • variadic function
  • call/cc(limitation exists)
  • if
  • basic arithmetic functions(+ - * /)
  • set!
  • tail call optimization

Install

$ gem install rb-scheme

Usage

Run

repl

$ rb-scheme

You can use rlwrap for readline

$ rlwrap rb-scheme

with file

$ rb-scheme examples/nqueen.scm

primitives

  • numeric(+, -, *, /)
  • predicate(=, <, >, null?)
  • lisp operations(cons, car, cdr, list)
  • print(display, newline, print)

examples

see examples folder

Development

$ bundle install
$ rake test

License

The gem is available as open source under the terms of the MIT License.

About

An implementation of Scheme subset written in Ruby

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published