Skip to content
P. Todd Decker edited this page Jan 12, 2016 · 5 revisions

Version 0.3

Extended numbers to also handle reals (floating point):

  • Additional primitive functions added include: 'real?'
  • Extended basic math functions primitives ('+', '-', '*', 'quotient', and 'remainder') to support real numbers in addition to integers.
  • IEEE 755 double precision floating point was implemented.
  • Floating point numbers will automatically be converted back to integers if the floating point remainder is exactly zero.
  • Math functions shift to floating point if any floating point number is present in the string of multiple arguments.

Version 0.2

Added basic file I/O support:

  • Additional primitive functions added include: 'load', 'open-input-port', 'close-input-port', 'eof-object?', 'open-output-port', 'close-output-port', 'input-port?', 'close-port?', 'peek-char', 'read-char', 'write-char', 'read', 'write', and 'error'.

Version 0.1

A first cut at basic REPL functionality is complete. Provided functionality includes:

  • No garbage collection -- you will eventually run the heap dry
  • No file system -- you cannot yet save your work or load Scheme files
  • Poor error handling -- sometimes the REPL knows how to recover, sometimes it doesn't
  • Since no file system, no standard library -- what follows is what you've got to work with
  • Primitive types supported include:
    • boolean (examples: #t, #f)
    • character (examples: #'x', #'\n')
    • integer (examples: 1, 004, 78, -4)
    • string (examples: "hello world")
  • All embedded C-style escape characters are supported (examples: \a, \n, \t)
  • Primitive symbols currently supported include: 'quote', 'define', 'set', 'if', 'lambda', 'begin', 'cond', 'else', 'let', 'and', and 'or'.
  • Primitive functions currently supported include: 'null?', 'boolean?', 'symbol?', 'integer?', 'char?', 'string?', 'pair?', 'procedure?', 'char->integer', 'integer->char', 'number->string', 'string->number', 'symbol->string', 'string->symbol', '+', '-', '*', 'quotient', 'remainder', '=', '<', '>', 'cons', 'car', 'cdr', 'set-car!', 'set-cdr!', 'list', 'eq?', 'apply', 'interaction-environment', 'null-environment', 'environment', 'eval', and 'exit'.

Clone this wiki locally