discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GScheme is back (V).


From: Marko Riedel
Subject: GScheme is back (V).
Date: 02 Mar 2005 22:16:36 +0100
User-agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Portable Code)

The following message is a courtesy copy of an article
that has been posted to comp.lang.scheme as well.


Hi folks,

this is another GScheme update -- the last one before I pause
development for a while.

Bugs fixed:

* memory leak in "display"
* segfault triggered by "apply" + garbage collection
* turned off parser for quoted forms.

Primitives added:

* eval
* string-length
* draw-rect: draws a rectangle of the given width and height at the
  current position
* fill-rect: fills the rectangle with the current color.
* format: format a string using the ~a escape etc.

Concerning "eval":

consider an eval in the last form of a sequence in the body of a
closure where the evaluated form contains references to the arguments
of the closure. The code that does tail recursion will have already
discarded the frame with the bindings for the closure. If you must do
an eval at this position, then you should wrap it with a let,
e.g. (let ((v (eval '(stuff here)))) v). 

New examples:

* eval.scm, eval1.scm -- different evaluations
* plotfancy.scm: plots functions with labelled axes and a title above
  the plot (also uses eval)
* randrects.scm -- draws random rectangles
* qsort.scm -- uses quicksort to sort all permutations of n elements
  and draws a histogram of the number of comparisons used, i.e. an
  image of the generating function of the number of comparisons.

Library functions added:

* min, max
* make-range -- produces a list of integers 

The URL is

  http://www.gnustep.it/marko/GScheme/index.html

Enjoy!

Best regards,

-- 
+------------------------------------------------------------+
| Marko Riedel, EDV Neue Arbeit gGmbH, mriedel@neuearbeit.de |
| http://www.geocities.com/markoriedelde/index.html          |
+------------------------------------------------------------+




reply via email to

[Prev in Thread] Current Thread [Next in Thread]