Monday, November 23, 2009

Format, define-syntax (rules)

Just a few updates:

Format

The format form:

(format specification-string rest-list)

Now works for all internal types, including all collexions. Formatting of tries, vectors, strings, and lists is supported. There are (generally) two types of formatting for each object: display form and write form; the two types correspond to their top-level forms. The switch is case: lower case is display, upper is write. So, "~t" displays a t(able | rie) as display would, whereas "~T" displays it as write would.

Syntax rules

I've fixed pattern matching in define-syntax so that you can use the usual forms:

(let ((name . val) ...) . body)

Will expand exactly how you expect (unlike before...).

More to come
I've started to bring Ceres & Enyo up to where Vesta is currently; even though Vesta is almost the same speed as TinyScheme, this isn't really fast enough for many applications. Ceres is a SECD-like VM, and Enyo has some neat tricks in it. Hopefully they can be made production ready before year's end.

No comments: