This Scheme interpreter implements nearly all of the
essential procedures of the r4rs Scheme standard, save
for call-with-curent-continuation.
It also implements most of the features of r5rs, with
the major exceptions being macros and calls related
to continuation.
Finally, it behaves as r6rs, rather than r[45]rs in being
case-sensitive.
EXTENSIONS
(quit)
This does the obvious of exiting the interpreter.
(popen cmd-string)
The
cmd-string
is executed by the shell.
The command's standard input and output are assigned
to two Scheme ports which make a list returned by this
function.
One particular use of
popen
is in talking to Tk.
For example,
is a simple graphical version of everyone's favorite
first program.
(<-=)
(=<-)
(alt)
(channel)
(close-inout-port)
(open-inout-file)
(open-input-string)
(readfile)
(readline)
(sleep)
(spawn)
CURRENT STATUS
r4rs
all essential procedures except (call-with-current-continuation)
r5rs
all non-optional features except
(char-ready?)
(call-with-current-continuation)
(values)
(call-with-values)
(dynamic-wind)
(define-syntax)
(let-syntax)
(letrec-syntax)
(syntax-rules)
SOURCE
/appl/scheme/cell.b
- core cell, pair, and environment routines.
/appl/scheme/sform.b
- functions that implement special forms.
/appl/scheme/builtin.b
- functions that implement built-in procedures.
/appl/scheme/scheme.b
- top-level REPL functions.
extension.b
- Inferno scheme extensions.
/lib/scheme/library.scm
- Some procedures implemented in scheme, rather than directly as built-in functions.
BUGS
The (char-ready?) procedure is not likely to ever be implemented; there's not really a good way to do it in Inferno.
No complex numbers.
No compiler.
Error handling should be better.
Proper tail calls only partial with little testing.