41 lines
1.1 KiB
Plaintext
41 lines
1.1 KiB
Plaintext
|
|
||
|
|
||
|
GScheme
|
||
|
|
||
|
A GNUstep-aware scheme interpreter. Includes many examples, e.g. the
|
||
|
sieve of Erathostenes to compute primes, a Koch curve plotter, graphs
|
||
|
of various functions etc. GScheme is fully tail recursive. The garbage
|
||
|
collector bypasses GNUstep's retain/release mechanism in order to deal
|
||
|
with circular data structures.
|
||
|
|
||
|
GScheme is document-based and you can edit more than one file at the
|
||
|
same time.
|
||
|
|
||
|
Speed leaves something to be desired as there is a lot of overhead due
|
||
|
to Objective C.
|
||
|
|
||
|
Press Ctrl-Return in the interpreter window to evaluate the last form
|
||
|
that you have entered.
|
||
|
|
||
|
Special forms implemented include
|
||
|
|
||
|
define, set!, lambda,
|
||
|
if, and, or
|
||
|
begin, apply,
|
||
|
quote, case, cond,
|
||
|
let, let, letrec,
|
||
|
call-with-current-continuation
|
||
|
|
||
|
Primitives implemented include
|
||
|
|
||
|
+, *, -, /, =, >, <,
|
||
|
draw-move, draw-line, draw-color,
|
||
|
sin, cos, sqrt,
|
||
|
quotient, remainder, not,
|
||
|
zero?, pair?, number?, eqv?, eq?,
|
||
|
cons, car, cdr, list, null?,
|
||
|
set-car!, set-cdr!,
|
||
|
display, newline
|
||
|
|
||
|
There is a library of additional primitives that are loaded on start-up.
|