From: Matthew Flatt <mflatt@cs.utah.edu>
To: plt-scheme@web-ext.cs.brown.edu
Subject: [plt-scheme] 299.28
Date: Wed, 26 Jan 2005 10:06:47 -0700
The exp-tagged code for MzScheme and MrEd in CVS is now version 299.28.
Changes:
* Added `get-bounding-box’ to dc-path%.
* Added optional `for-label?’ argument to font%’s
`screen-glyph-exists?’, since Windows’s font substitution for
control labels is not as aggressive as MrEd’s font substitution for
`draw-text’.
* Added an H-expression mode to MzScheme’s reader, which is triggered
by #hx or #honu and escaped by #sx. Also added `read-honu’,
`read-honu-syntax’, and `print-honu’. See the MzScheme docs for more
information.
This is an experiment towards a new family of languages. More on
that soon.
For now, I’ll admit that if you put
#honu dynamic
int v = 10;
int f(int x) {
return x + 1;
}
(int -> int) g() {
return f;
}
provide v, f, g;
into "f.honu" and require it, then you’ll get a binding of `v’ to
the number 10, a binding of `f’ to a function that accepts exact
integers and increments them, and a binding of `g’ to a thunk that
returns the function bound to `f’.
But this program might not work the same (using the latest code)
days or even hours from now, and it may or may not have any
recognizable relation to something that is eventually called "Honu".
The Java-like syntax above is really just a pile of H-expressions
(something we made up) from MzScheme’s perspective. It becomes a
language through macros in the "honu-module" collection.
Matthew