Add web page from Wayback Machine
wayback_machine_downloader --to 20051218234159 http://www.gnustep.it/marko/GScheme/
This commit is contained in:
commit
15802dc26d
Binary file not shown.
After Width: | Height: | Size: 9.0 KiB |
|
@ -0,0 +1,187 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>GScheme</title>
|
||||
</head>
|
||||
|
||||
<body text="#000000" bgcolor="#CCCCCC" link="#0000FF" vlink="#000000">
|
||||
|
||||
<H1> GScheme </H1>
|
||||
|
||||
A GNUstep-aware scheme interpreter.
|
||||
|
||||
Includes many examples, e.g. the sieve of Erathostenes to compute primes, a
|
||||
Koch curve plotter, mandelbrot set, 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. <P>
|
||||
|
||||
GScheme is document-based and you can edit more than one file at the
|
||||
same time. <P>
|
||||
|
||||
Speed leaves something to be desired as there is a lot of overhead due
|
||||
to Objective C.<P>
|
||||
|
||||
Press Ctrl-Return in the interpreter window to evaluate the last form
|
||||
that you have entered. This will copy the form to the paste board, so that you
|
||||
may re-enter it by pressing Alt-V.
|
||||
<P>
|
||||
|
||||
<IMG SRC=GScheme.png>
|
||||
<P>
|
||||
|
||||
Download it
|
||||
<A HREF=GScheme.tgz>
|
||||
here (TGZ)</A>
|
||||
or
|
||||
<A HREF=GScheme.zip>
|
||||
here (ZIP; Microsoft Internet Explorer 6).</A>
|
||||
|
||||
<HR>
|
||||
|
||||
Special forms implemented include
|
||||
<UL>
|
||||
<LI> define, set!, lambda,
|
||||
<LI> if, and, or
|
||||
<LI> begin, apply,
|
||||
<LI> quote, case, cond,
|
||||
<LI> let, let, letrec,
|
||||
<LI> call-with-current-continuation
|
||||
</UL>
|
||||
|
||||
Primitives implemented include
|
||||
<UL>
|
||||
<LI> +, *, -, /, =, >, <,
|
||||
<LI> draw-move, draw-line, draw-color,
|
||||
<LI> sin, cos, sqrt,
|
||||
<LI> quotient, remainder, not,
|
||||
<LI> zero?, pair?, number?, eqv?, eq?,
|
||||
<LI> cons, car, cdr, list, null?,
|
||||
<LI> set-car!, set-cdr!,
|
||||
<LI> display, newline
|
||||
</UL>
|
||||
|
||||
|
||||
There is a library of additional primitives that are loaded on start-up.
|
||||
<HR>
|
||||
|
||||
New! As of July 23, 2002:
|
||||
|
||||
<UL>
|
||||
<LI> make-vector, vector?, list->vector, vector->list?
|
||||
<LI> vector-length, vector-ref, vector-set! and vector-fill!.
|
||||
<LI> asin, acos
|
||||
</UL>
|
||||
|
||||
Examples now include queens.scm, which solves the classic problem and
|
||||
takes symmetries into account.
|
||||
|
||||
<HR>
|
||||
|
||||
New! As of July 31, 2002:
|
||||
|
||||
<UL>
|
||||
<LI> memory management completely reworked
|
||||
|
||||
<LI> browse-environment pops up a window that shows the current
|
||||
environment (e.g. for environment diagrams); browse.scm shows how
|
||||
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
|
||||
New! As of January 10, 2005:
|
||||
|
||||
<UL>
|
||||
<LI> memory management simplified
|
||||
<LI> new UI for browse-environment
|
||||
<LI> additional primitives: exp, log, tan, atan
|
||||
<LI> evaluate external files
|
||||
<LI> more intutive UI e.g. the last form entered is copied to the paste board
|
||||
and may be repeated by pressing Alt-V
|
||||
<LI> better error handling
|
||||
</UL>
|
||||
|
||||
<PRE>
|
||||
Important: older GNUstep installations may need to replace
|
||||
#include <GNUstepBase/GSIMap.h>
|
||||
by
|
||||
#include <base/GSIMap.h>
|
||||
at the very beginning of SchemeTypes.m.
|
||||
</PRE>
|
||||
|
||||
<HR>
|
||||
|
||||
New! As of February 17, 2005:
|
||||
<P>
|
||||
New primitives:
|
||||
|
||||
<UL>
|
||||
<LI> draw-show produces an image window with the data that have
|
||||
accumulated and resets the image
|
||||
<LI> draw-circle draws a circle of a given radius at the current position
|
||||
without changing the position
|
||||
<LI> fill-circle is like draw-circle, but fills the circle
|
||||
<LI> random outputs a random integer in the interval [0, n) when invoked
|
||||
with an integer "n" and a random double in the interval [0, v) when
|
||||
invoked with a double "v"
|
||||
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
|
||||
New! As of February 25, 2005:
|
||||
<P>
|
||||
New primitives, graphical ones come first.
|
||||
|
||||
<UL>
|
||||
<LI> string-size returns a pair containing the width and height of the
|
||||
string in the current font
|
||||
<LI> draw-font sets the current font to a font of a given size
|
||||
<LI> draw-string draws a string at the current position and advances the
|
||||
position to just behind the newly drawn string.
|
||||
</UL>
|
||||
|
||||
There is a demo in "text.scm." You will probably have to change the
|
||||
font names in the demo to reflect the fonts that you have on your
|
||||
system e.g. as displayed in the font panel of Ink.app.
|
||||
|
||||
Additional primitives:
|
||||
|
||||
<UL>
|
||||
<LI> string->symbol
|
||||
<LI> symbol->string
|
||||
<LI> integer->char
|
||||
<LI> char->integer
|
||||
<LI> string-ref
|
||||
<LI> list->string
|
||||
<LI> string->list
|
||||
<LI> make-string
|
||||
<LI> string-append
|
||||
<LI> number->string (works for integers in bases between 2 and 36 and decimal floats).
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
|
||||
New! As of Mar 2, 2005:
|
||||
<P>
|
||||
New primitives:
|
||||
|
||||
<UL>
|
||||
<LI> eval
|
||||
<LI> string-length
|
||||
<LI> draw-rect: draws a rectangle of the given width and height at the
|
||||
current position
|
||||
<LI> fill-rect: fills the rectangle with the current color.
|
||||
<LI> format: format a string using the ~a escape etc.
|
||||
</UL>
|
||||
|
||||
My homepage is <A HREF=http://www.geocities.com/markoriedelde/index.html>
|
||||
here.</A>
|
||||
|
||||
<HR>
|
||||
<A HREF=mailto:markoriedelde@yahoo.de>
|
||||
markoriedelde@yahoo.de
|
||||
</A>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue